2010-12-14 45 views
0

這個錯誤是否會破壞我的代碼?我得到它的readyState 1錯誤:INVALID_STATE_ERR:DOM異常11打破我的AJAX?

相關的HTML代碼:

<input type="button" value="Log In" onclick="login()" class="submit" /> 

相關的Javascript:

function login() { 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("headSpan").innerHTML = xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("POST", "logIn.php", true); 
     xmlhttp.send("usr=bob"); 
    } 

的login.php:

<?php 
echo $_POST['usr']; 
?> 

然後,xmlhttp.responseText是「 」。如果它正在做我認爲應該做的事,我會得到'bob';

在此先感謝。

編輯:此錯誤定義爲「如果嘗試使用不是或不再可用的對象」。只是FYI。

+0

錯誤對應哪一行? – Jonah 2010-12-14 02:00:41

+0

我如何知道?我一直在用if(xmlhttp.readyState == 4 && xmlhttp.status == 200)上的斷點來使用Chrome Javascript控制檯。 – Bloodyaugust 2010-12-14 02:11:25

+0

哦,它不給你一個線?那麼,這是一個非常簡單的腳本;只需在所有行上放置一個斷點。 – Jonah 2010-12-14 02:17:06

回答

0

找到了解決辦法:

var params = "usr=bob"; 
     xmlhttp.open("POST", "logIn.php", true); 
     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xmlhttp.setRequestHeader("Content-length", params.length); 
     xmlhttp.setRequestHeader("Connection", "close"); 
     xmlhttp.send(params); 

顯然,請求頭沒有自動的對PHP的工作總是爲我承擔了(並沒有發現任何證據,從這個信念勸阻我)。無論如何,非常簡單的解決方案,但令人沮喪的。只需要額外的信息:運行WAMP(不是預先構建的東西,縮寫)。 Apache 2.2,PHP 5.3.3。