2013-09-19 4 views
0

Почему он всегда говорит «загрузка ...» и не показывает содержимое data.php?AJAX HTTP-запрос обновить контент

xmlhttp = new XMLHttpRequest();    
function getdata() { 
    xmlhttp.onreadystatechange = function() { 
     if(xmlhttp.readyState = 4 && xmlhttp.status == 200) { 
      document.getElementById('data').innerHTML = xmlhttp.responseText; 
     } 
     else { 
      document.getElementById('data').innerHTML = "loading..."; 
     } 
    } 
    xmlhttp.open("GET", "data.php", true); 
    xmlhttp.send(); 
} 

ответ

0

Я не знаю, почему вы всегда получите «Загрузка» ... но вы пропустили сравнить оператора в строке:

if(xmlhttp.readyState = 4 && xmlhttp.status == 200) 

должен быть

if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
+0

спасибо, но это не показывает содержание data.php –

+0

и что проявляется? может быть проблема в data.php? – Olegacy

+0

это data.php –

0

Вы уверены, что статус 200?

if(xmlhttp.readyState == 4) { //<-- typo 
    if(xmlhttp.status == 200) { 
      document.getElementById('data').innerHTML = xmlhttp.responseText; 
    } else { 
      document.getElementById('data').innerHTML = xmlhttp.status + ": " + xmlhttp.statusText; 
    } 
} else { 
    document.getElementById('data').innerHTML = "loading..."; 
} 

Теперь вы сказали, что статус равен нулю, это означает, что вы не отменяя представление событие щелчка/форма, которая вызывает функцию, которая делает запрос Ajax. Я предполагаю, что вы используете встроенный обработчик событий, так что это будет выглядеть примерно так:

<a href="foo.gif" onclick="getdata(); return false;"> 
<form onsubmit="getdata(); return false;"> 
+0

говорится: 0 /: –

Смежные вопросы