Ajax与php,获得状态200但readyState 0

时间:2015-02-11 12:06:04

标签: javascript php ajax

  

脚本:

function ajaxHandler() {
    var xmlhttp;
    try {  // Opera 8.0+, Firefox, Safari
       xmlhttp = new XMLHttpRequest();

    } catch (e) {   // Internet Explorer Browsers
   try {
        alert("paososdao");
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
      try{ 
         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {   // Something went wrong
         alert("Your browser broke!");
         return false;
      }
   }
 }
    xmlhttp.onreadystatechange = useHttpResponse();
    xmlhttp.open("GET","prova.php",true); 
    xmlhttp.send(null);

    function useHttpResponse(){ 
        if (xmlhttp.readyState < 4)                         // while waiting response from server
            document.getElementById('test').innerHTML = "Loading...";
        else if (xmlhttp.readyState === 4) {             
            if (xmlhttp.status == 200 && xmlhttp.status < 300)
                document.getElementById('test').innerHTML = xmlhttp.responseText;

       }
    }
}

我正在使用xampp对其进行测试,并且我总是得到readyState = 0并且没有来自prova.php的响应,但是如果我在Chrome上打开开发人员控制台,我可以看到GET请求状态是200.什么& #39;是问题。

1 个答案:

答案 0 :(得分:0)

试试:

 xmlhttp.onreadystatechange = useHttpResponse;

您在需要之前调用useHttpResponse。