programing

Internet Explorer 10이 XMLHttpRequest 'xhr을 무시합니다.자격 증명 사용 = true'

telebox 2023. 8. 15. 11:02
반응형

Internet Explorer 10이 XMLHttpRequest 'xhr을 무시합니다.자격 증명 사용 = true'

현재 IE10(호환성이 아닌 IE10 모드)을 사용하는 도메인 간 Ajax 통화에 문제가 있습니다.

상황:나는 두 개의 도메인을 가지고 있습니다.http://a그리고.http://b쿠키 세트가 있습니다.http://b나는 현재 페이지에 있습니다.http://a.

저는 CORS 요청을 하고 싶습니다.http://bXMLHttpRequest(http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx), 에 따라 작동해야 하며 요청에 쿠키를 포함해야 함)를 사용합니다.JS는 다음과 같습니다.

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://b', true);
xhr.withCredentials = true;
xhr.send();

이것은 쿠키가 요청에 첨부되도록 보장해야 합니다. 하지만 Fiddler 추적은 쿠키가 첨부되지 않은 것을 보여주고, 저는 그것을 얻습니다.401: Access Denied.

서버는 CORS와 함께 작동하도록 구성되어 있으며, 다음과 같은 Access-Control 헤더를 포함합니다.

Access-Control-Allow-Origin: http://a
Access-Control-Allow-Credentials: true

(OPTIONS 사전 비행 요청이 없고 IE가 보내는 첫 번째 요청이 GET이고 쿠키가 존재하지 않아 401이 발생하기 때문에 이것은 아무런 차이가 없습니다.

게다가, JS 스니펫은 파이어폭스와 오페라 모두에서 잘 작동합니다.

그것은 아마도 오래된 IEP3P 문제일 것입니다.IE의 기본 설정에서 응답에도 P3P 헤더가 없는 쿠키가 설정된 경우, 쿠키는 "first-party only"로 표시됩니다.즉, iframe 또는 CORS 요청과 같은 타사 상황에서 IE는 쿠키 전송을 거부합니다.

이를 수정하려면 쿠키를 설정할 때 P3P 헤더를 제공해야 합니다.자세한 내용은 http://msdn.microsoft.com/en-us/library/ms537343%28v=vs.85%29.aspx 을 참조하십시오.

업데이트: 링크가 비활성화되었지만 인터넷 보관소에서 볼 수 있습니다.

저도 비슷한 문제가 있었는데 브라우저 설정이 타사 쿠키를 차단하고 있는 것으로 나타났습니다(IE10 > 인터넷 옵션 > 개인정보 보호 > 고급 > 타사 쿠키 > 동의).문제를 해결하기 위해 "자동 쿠키 처리 무시", "승인"(제3자 쿠키), "항상 세션 쿠키 허용"을 선택했습니다.

우리는 vari : cookie라는 헤더를 추가했고 그것은 작동했습니다.

언급URL : https://stackoverflow.com/questions/12643960/internet-explorer-10-is-ignoring-xmlhttprequest-xhr-withcredentials-true

반응형