IE8에서 AJAX 요청을 만들려고합니다.IE8 AJAX URL에서 params가 제공되지 않으면 setRequestHeaders가 작동하지 않습니다.
var xhr = new ActiveXObject('Msxml2.XMLHTTP');
xhr.open('GET', '/ajax/');
// Required header for Django to detect AJAX request
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function() {
if (this.readyState == 4) console.log(this.responseText);
}
xhr.send(null);
Firefox, Chrome, Safari에서 완벽하게 작동합니다. 그러나 IE8에서는 모든 AJAX 테스트 요청이 위와 같은 쿼리 문자열 매개 변수없이 GET을 수행하는 경우를 제외하고 모두 작동합니다. 게시물이 같은 URL에 쿼리 문자열을 포함 할 때마다에서만 작동 문제없이 작동하고, 요청을 GET :
xhr.open('GET', '/ajax/?foo=bar')
나는 또한 내 서버 코드가 적절히 이러한 요청을 처리하는 것을 110 % 긍정적 인, 그래서이 나무 그루터기 나 완전히.
누군가이 문제의 원인에 대해 단서가 있습니까?
나는 그것이 당신이 찾고있는 대답이 아닐 수도 있습니다. 왜 jquery를 사용하지 않습니까? 브라우저 호환성에 대한 모든 책임은 귀하에게 있습니다. 그래서 한번 시도해보십시오. 또한 코드의 대부분을 변경하지 않습니다. :) – Bipul
wireshark와 같은 것을 사용하여 IE가 HTTP 요청을 전혀 발행하지 않는지 여부를 결정 해 봤니? 즉, 브라우저가 "캐시에 URL이있어 HTTP 요청을 실행할 필요가 없습니다."라고 결정하지 않았습니까? – Pointy
@Pointy - 캐시를 지우고 변경 한 후에 서버를 다시 시작해야합니다. @ Bipul - 내 자신의 프레임 워크를 쓰고 있지만 jQuery = 사랑 해요.) – ground5hark