2012-02-01 2 views
15

AJAX 요청에 대한 디버그 도구를 구축 중이며 요청/응답 헤더를 표시하고 싶습니다 (Firebug가하는 것처럼). jqXHR.getAllResponseHeaders을 사용하여 응답 헤더를 얻을 수 있지만 요청 헤더 에 해당하는 값이 있습니까?


하지 않으면, 내가 어느 정도 그것을 자신을 재구성 할 수 알고 :

GET /blah // this part is easy 
Host: servername.com // pretty easy 
Accept: ??? 
Referer: ??? // just use current page url? 
User-Agent: // easy from navigator.userAgent 
X-Requested-With: XMLHttpRequest // hardcoded, $.ajax always does this? 
Accept-Charset: ??? 
Accept-Encoding: ??? 
Accept-Language: ??? 
Connection: ??? 

나는 대부분에 대해 Accept 관심. 브라우저 또는 뭔가가 바뀌고있는 것 같습니다. 왜냐하면 나는 $.ajax({dataType:'json'})을 설정하고 있기 때문에 방화범이 끌리는 사람은 Accept application/json, text/javascript, */*; q=0.01입니다. 전송되는 실제 헤더를 캡처 할 수 있기를 바랍니다.

Referer의 경우 window.url을 사용하는 것이 안전할까요?

Accept-* 또는 Connection 값을 얻는 방법을 모르겠습니다.

+0

가능한 중복 [XMLHttpRequest에서 보낸 Sent 헤더] (http://stackoverflow.com/questions/7564007/get-sent-headers-in-an-xmlhttprequest) –

답변

-6

성공 함수에서 jqXHR 객체를 사용하여 헤더에 액세스 할 수 있습니다. http://api.jquery.com/jQuery.ajax/에서

$.ajax({ 
... 
success: function(data, textStatus, jqXHR){ 
console.log(jqXHR); 
... 
} 
}) 

+3

jq 2.0.3부터 * 응답 * 헤더 ('getAllResponseHeaders()'또는'getResponseHeader()')를 사용하지만 요청한 * 헤더가 아닙니다. – gregmac

3

당신은 현재 아약스 요청에 대한 참조는 다음 속성을 가져올로 "이"과 같이 "허용"사용할 수 있습니다

$.ajax({ 
       type: 'POST', 
       dataType: 'JSON', 
       url:'ajax.php', 
       data:my_data_array, 
       success: function(data) { 
        console.log(this.accepts); 
       } 
      }); 
5

짧은 답변 - 아니 놀랍게도, .

XMLHttpRequest API에는 보내려는 요청의 헤더를 검색 할 수있는 방법이 없습니다. this question도 참조하십시오.

새로운 jqHXR object, a superset of the browser's native XMLHttpRequest은 불행히도 하나도 구현하지 않습니다.

.ajaxComplete() callback 당신이 그것을 정상적인 방법을 설정 한 경우 headers 키를 포함하는 settings 매개 변수를 얻을하지 않습니다,하지만 당신은 setRequestHeader() 전화 .beforeSend()를 사용한 적이없는 경우.

관련 문제