2013-10-31 46 views
0

我在Linux機器上安裝了全新的Appache和PHP。這是我想出了測試事情是如何工作的第一個腳本:ReadyState和狀態分別等於1和0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5//EN" 
    "http://www.w3.org/TR/html5/html5.dtd" 
    > 
<html lang="en"> 
<head> 
    <title>First Ajax</title> 
    <script language="javascript" type="text/javascript"> 
    var xmlhttp; 

    function getNum() 
    { 
     xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = callback; 

     xmlhttp.open("GET" , "random.php" , true); 
     xmlhttp.send(); 
    } 

    //When Information comes back from the server 
    function callback() 
    { 
     if(xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      alert("Ready") 
      document.getElementById('result').innerHTML = xmlhttp.responseText; 
     } 
     else 
     { 
      alert("Nope") 
     } 
    } 

    </script> 
</head> 
<body> 
    <div id="result"> 
    </div> 
    <input type="button" value="Get Random Number" onclick="getNum()"/> 
</body> 
</html> 

但是,似乎因爲「不」返回行xmlhttp.readyState==4 && xmlhttp.status==200計算爲false。如果我用||代替&&也是一樣。如果我從我的瀏覽器去localhost/random.php,它工作正常。我知道確切的代碼適用於其他電腦。任何想法我卡住了?

編輯:在@Musa的評論,我意識到的readyState等於1和狀態爲0是指該對象被創建,併發送方法還沒有被調用(http://msdn.microsoft.com/en-us/library/ms753800%28v=vs.85%29.aspx)。無論如何,我仍然失去了。

+0

@Musa請閱讀我的編輯之前。 – multigoodverse

回答

0

readyState不直接去4,它可以去其他值達到4 嘗試類似的問題,這

if(xmlhttp.readyState==4){ 
     if (xmlhttp.status==200) 
     { 
      alert("Success") 
      document.getElementById('result').innerHTML = xmlhttp.responseText; 
     } 
     else 
     { 
      alert("Failure") 
     } 
    } 
+0

是的,但是因爲我的readyState是1而我的狀態是0,所以你的代碼也返回「失敗」。問題是如何使readyState等於1並且狀態等於200. – multigoodverse

+0

不是,它也不是readyState = 4,意味着請求沒有完成。 – Musa

相關問題