2009-11-25 2 views
3

리디렉션되는 AJAX 다운로드를하고 있습니다. 요청이 리디렉션 된 최종 도착 URL을 알고 싶습니다. 나는 jQuery를 사용하고 있지만 기본 XMLHttpRequest에도 액세스 할 수있다. 누구든지 최종 URL을 얻을 수있는 방법을 알고 있습니까?XMLHttpRequest에서 검색 한 최종 URL을 볼 수있는 방법이 있습니까?

최종 대상이 헤더 또는 응답 본문의 알려진 위치에 URL을 삽입 한 다음 스크립트에서 찾도록해야 할 것 같습니다. 나는 목표에 상관없이 일할 수있는 것을 갖기를 바랬다.

추가 참고 사항 : 내 코드가 사용자 시스템에서 실행되는 프로덕션 코드의 전체 URL을 얻는 방법을 묻습니다. 디버깅 할 때 전체 URL을 얻을 수있는 방법을 묻지 않습니다.

답변

0

가장 쉬운 방법은 Fiddler 또는 Wireshark를 사용하여 HTTP 트래픽을 검사하는 것입니다. 인터페이스가 브라우저를 사용하는 경우 클라이언트에서 Fiddler를 사용하고, 그렇지 않으면 Wireshark를 사용하여 유선에서 트래픽을 캡처합니다.

0

한 단어 - 방화 광, Firefox 플러그인입니다. 그것 없이는 AJAX 개발을 절대하지 마십시오.

Firebug를 활성화하고 Net을 선택한 다음 AJAX 요청을 수행하십시오. 그러면 호출 된 URL, 전체 요청 (헤더 및 본문) 및 전체 응답 (다시 한번 헤더 및 본문)이 표시됩니다. 또한 자바 스크립트를 단계별로 실행하고 중단 점, 시계 등을 디버깅 할 수 있습니다.

0

Firebug 제안보다 두 번째입니다. http 응답에 url이 "위치"헤더로 표시됩니다. js에서이 URL을 가져오고 싶습니다. 그렇다면 콜백의 xhr 응답 객체에서이 객체를 가져올 수 있습니다.이 객체는 FB를 사용하여 검사 할 수도 있습니다. :)

+0

인식 주셔서 감사합니다. 프로그래밍 방식으로이 작업을 수행해야합니다. 그러나 위치 헤더가 작동한다고는 생각하지 않습니다. Location 헤더는 최종 응답이 아닌 리디렉션 응답의 헤더입니다. XHR 헤더의 컬렉션은 위치 헤더가 아닌 최종 응답을 나타냅니다. 위치가있는 추가 HTTP 헤더가 없습니다. –

+0

이 커피가 작동하지 않습니다. 수정 : "리디렉션 응답이 아닌 최종 응답을 나타냅니다." –

+0

흠, 내가 이걸 보지 않았다고 생각해. xhr이 리디렉션되면 새 xhr을 생성하지 않습니까? 나는 당신이 기존의 것을 사용하고 원래 응답 헤더를 잃어 버리고 있다고 말하고있는 것 같군요? myReq.xmlhttp.getAllResponseHeaders()? tcpmon 또는 fiddler가 2 개의 요청을 표시합니까? 건배! –