교차 도메인 AJAX가 X-Requested-With 헤더를 전송하지 않음
http://www.a.com/service.asmx에서 웹 서비스를 만들고 http://www.b.com에서 도메인 간 에이잭스 요청을 전송합니다.Firebug, Live HTTP Headers 또는 원하는 다른 플러그인의 헤더를 확인합니다.
요청 헤더 간에 X-Requested-With HTTP Header 필드의 트레이스는 없습니다.
다만, 같은 도메인으로부터 같은 서비스에 Ajax 요구를 송신하면(예를 들면, http://www.a.com/about),), 그 헤더필드가 표시됩니다.
크로스 도메인 Ajax 요청의 경우 X-Requested-With 헤더필드가 생략되는 이유는 무엇입니까?
업데이트: JSONP 콜은 본질적으로 AJAX 콜이 아닙니다.따라서 JSONP 콜에는 X-Requested-With 헤더필드는 표시되지 않습니다.
jQuery를 사용하여 ajax 요청을 수행하는 경우 교차 도메인이기 때문에 X-Requested-With(HTTP_X_REQUESTED_WITH) = XMLHtpRequest 헤더를 전송하지 않습니다.단, 이 문제를 해결하고 헤더를 송신하는 방법에는 다음 2가지가 있습니다.
옵션 1) Ajax 콜의 헤더를 수동으로 설정합니다.
$.ajax({
url: "http://your-url...",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});
옵션 2) jQuery가 도메인 간 기본값을 사용하지 않도록 지시하여 Ajax 요청에서 X-Requested-With 헤더를 유지합니다.
$.ajax({
url: "http://your-url...",
crossDomain: false
});
단, 이 경우 서버는 이러한 헤더를 허용해야 합니다.그 후 서버는 이러한 헤더를 인쇄해야 합니다.
print "Access-Control-Allow-Origin: *\n";
print "Access-Control-Allow-Headers: X-Requested-With, Content-Type\n";
위의 첫 번째 행은 "Origin is not allow by Access-Control-Allow-Origin" 오류를 방지합니다.
두 번째 줄에서는 "Request header field X-Requested-With is not allow-Headers" 오류가 발생하지 않습니다.
언급URL : https://stackoverflow.com/questions/8163703/cross-domain-ajax-doesnt-send-x-requested-with-header
'source' 카테고리의 다른 글
치명적인 오류: auto-global 변수 _POST를 재할당할 수 없습니다. (0) | 2023.03.23 |
---|---|
레독스는 그저 글로벌한 국가일 뿐이지 않나요? (0) | 2023.03.23 |
AngularJs의 $evalAsync와 $timeout의 차이점은 무엇입니까? (0) | 2023.03.23 |
JSON 문자열화 깊이 제한 (0) | 2023.03.23 |
스프링 부트에 포함된 Tomcat 버전을 확인하는 방법 (0) | 2023.03.23 |