2011-05-13 4 views
0

나는 AJAX 채팅룸을 만들었습니다. 크롬과 FF에서 작동하지만 물론 IE에서는 작동하지 않습니다. 내 코드는 다음과 같습니다.IE9에서 AJAX 문제가 있습니까?

<script language="javascript" type="text/javascript"> 
<!-- 
//Browser Support Code 
function ajaxFunction(){ 
    var ajaxRequest; 
    try { 
     ajaxRequest = new XMLHttpRequest(); 
    } catch (e) { 
     try { 
     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e){ 
      alert("Your browser broke!"); 
      return false; 
    } 
    } 
    } 

    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4) { 
     var ajaxDisplay = document.getElementById('ajaxDiv'); 
     ajaxDisplay.innerHTML = ajaxRequest.responseText; 
     } 
    } 

    ajaxRequest.open("GET", "pull.php", true); 
    ajaxRequest.send(null); 
} 

setInterval("ajaxFunction()", 1000); 

//--> 
</script> 

결과가 표시되지 않습니다. 내가 AjaxDiv라는 이름의 div를 가지고 있다면 누구에게나 도움이된다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이거 버그 야?

+4

아니면 사용할 수 JQuery와/Mootools의 같은 GET 요청에 쿼리 문자열을 추가, 감소 which'd 모두 약 2 줄로. 요즘 자신 만의 아약스 처리기를 굴리는 것은 너무 고통 스럽습니다. –

+0

필자는이 옵션을 고려해 보았지만 널리 사용되는 제품에서 Microsoft가 버그를 만들면 더 많은 관심을 보였습니다. –

+0

그 코드는 실제로 나에게 잘 들립니다. 이상한. 특히 IE9는 기본적으로 엄격한 표준 모드이며 비교적 호환되기 때문에 특히 그렇습니다. XMLHTTPRequest가 이미 정상적으로 작동해야합니다. – user120242

답변

6

요청할 때마다 캐시 된 복사본을 꺼낼 가능성이 높습니다.

어느 서버

header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Pragma: no-cache'); 

의 올바른 캐싱 헤더를 설정 또는 다음

ajaxRequest.open("GET", "pull.php?ts=" + new Date().getTime(), true); 
+0

동의하는 것을 잊었습니다. 죄송합니다. 대단한 답변! –

+0

감사합니다. 스크립트에 헤더를 추가하는 것은 효과가있었습니다. 그래도 IE9의 짜증나는 기능! – Rohaq

+0

@epascarello 아약스 요청을 보내고있는 모든 PHP 스크립트 맨 위에이 헤더를 추가해야합니까? 기본적으로 그냥 복사하여 내 아약스 스크립트의 맨 위에 넣어 붙여 무엇입니까? firebug는 내 Cache-Control이 no-store, no-cache, re-revalidate, post-check = 0, pre-check = 0, 내 pragma가 no-cache라고 주장합니다. 그러나 나는 내가 게시하고있는 스크립트 맨 위에 헤더를 가지고 있지 않으며 phpinfo.php에서 내 서버가 모든 헤더를 보내는 중임을 보지 못했습니다. jQuery를 사용하여 아약스를 사용하고 있는데이 오류가 간헐적으로 발생합니다. – billmalarky

관련 문제