2011-08-08 18 views
2

は、ここに私のコードの例です:IEはAJAX呼び出しで「不特定のエラー」をスローしますか?

function blah() 
{ 
    var xmlHttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); 

    xmlHttp.onreadystatechange = function() 
    { 
    if (xmlHttp.status == 200 && xmlHttp.readyState == 4) 
     alert(xmlHttp.responseText); 
    } 

    xmlHttp.open("GET", "ajax.php?_=" + new Date().getTime(), true); 
    xmlHttp.send(); 
} 

Chromeで見つける動作しているようですが、IE8があれば、ステータス= 200とreadyStateの= 4行目に「Unsepcifiedエラー」がスローされます。

奇妙なことに、アラートはPHPページからの応答を返します。

これはなぜ起こっているのでしょうか?

答えて

4

readyState!= 4の場合、ステータスをチェックしてIEでエラーが発生する可能性がありますか?

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

感謝を試してみてください、これが動作します。ステータスを最初にチェックし、readyStateを2番目にチェックすると、エラーが発生します。私がそれをチェックすると、私はそれ以外の方法で私はしません。なぜこれが起こるのですか? – Ozzah

+0

これは&&演算子の動作を示します。最初の条件がfalseの場合、2番目のチェックは行われず、エラーは発生しません。 – MadBender

+0

&&はどのように動作するのか分かりますが、意味がありません。 xmlHttp.statusは常に200で、readyStateは1から2から3から4になります。私のコードがエラーを生成する理由はまだ分かりません。 – Ozzah

関連する問題