2014-12-25 4 views
0
<script> 
var xmlHttp =new XMLHttpRequest(); 
var url= "summary.txt"; 
xmlHttp.onreadystatechange = function() { 
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { 
var myArr = JSON.parse(xmlHttp.responseText); 
myFunction(myArr); 
} 
xmlHttp.open("GET", url , true); 
xmlHttp.send(); 
} function myFunction(arr) 
var output=""; 
var i; 
for(i=0;i<arr.length;i++){ 
    output+='<p>'+arr[i].title+arr[i].image+arr[i].price+'</p>';  
} 
document.getElementById("proTab").innerHTML = output; 
} 
</script> 

HTML과 JSON 모두를 htdocs 폴더에 저장했는데 xampp이 시작되었고 제어판에서 Apache와 mysql이 실행되고 있는지 확인했습니다. 그런 다음 html에 연결하기 위해 "localhost /"를 사용하여 HTML에 대한 링크를 입력했지만 페이지는 비어있었습니다. 모든 세부 사항에 대해 유감스럽게 생각합니다.304 수정되지 않았습니다. Ajax가 작동하지 않습니까?

콘솔에 304 수정되지 않음이 표시됩니다. 어떻게해야합니까?

답변

0

내 생각 엔 당신이 적극적으로 AJAX GET 요청을 캐시하는 IE를 사용하고있는 것 같습니다. AJAX 요청에 POST를 사용하도록 변경하는 것이 좋습니다.

GET 요청을 사용해야하는 또 다른 방법입니다. 이 같은 각 GET 요청에 고유 한 쿼리 문자열 값을 추가 할 수 있습니다

var url = 'summary.txt' + '?' + Math.random()*Math.random(); 
+0

크롬을 사용하고 있습니다. POST가 작동하지 않았습니다. 전송 한 코드를 사용해도 작동하지 않았습니다. – user2668069

+0

AJAX가 없으면 304 오류가 발생합니까? –

0

내가 jQuery를 AJAX이 사용 :

$.ajaxSetup({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

난 당신이 jQuery를하지 않고 JS이를 사용하는 방법을 찾을 수 있다고 생각합니다. 따라서 서버는 아무것도 변경하지 않았다고 응답하고 200 OK 대신 304 NOT MODIFIED를 전송하기 때문에 요청을 보내기 전에 캐시를 지우는 것이 좋습니다. 즉, summary.txt은 변경되지 않았으므로 (수정되지 않음) 서버가 귀하에게 말합니다.

관련 문제