2016-08-14 2 views
0

永遠に再ロードし、それのない文書が存在しない:アヤックス(ajax.responseTextは)私はこれが起こっている理由を理解することはできません

<!DOCTYPE html> 
<html> 
<head> 
<style> 
</style> 
</head> 
<body> 
<h1>HideSite</h1> 
<script> 
var ajax; 
if (window.XMLHttpRequest) { 
    ajax = new XMLHttpRequest(); 
} else { 
    ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

ajax.onreadystatechange = function() { 
    location.replace(ajax.responseText); 
} 
if (navigator.userAgent == 'code') { 
    ajax.open("POST", "location.txt", true); 
    ajax.send(); 
} 
</script> 
</body> 
</html> 

location.txtは、ファイルの場所が含まれていますが。

アップデート:代わりに、私はこれを挿入replace()

alert(ajax.responseText)。それは3回行い、ウィンドウには実際に何かが含まれていたのは3分の1でした。

if (ajax.responseText != undefined && ajax.responseText != "") { 
     alert(ajax.responseText); 
} 

私は追加すると、このことだけやって二回、onreadystatechangeイベントはAJAX呼び出しの寿命の間に複数回にヒットを取得します

答えて

0

正しい文字列を含む両方の時間。これらのヒットの大部分は実際には応答テキストを提供しません。次のように準備ができた状態は以下のとおりです。あなたは、「すべての状態変化の」を言ってきたように、より頻繁にあなたのAJAX呼び出しがまだ持っていないよりも、「応答の準備ができたときに」

0: request not initialized 
1: server connection established 
2: request received 
3: processing request 
4: request finished and response is ready 

はではなくビーイング応答を受け取った。あなたのイベントに、ifのような記述を含めるように修正することをおすすめします。

関連する問題