2014-06-06 64 views
0

我有一些問題,這個代碼我所做的:XMLHttpRequest的readyState的停在1

function server_status() { 
    setInterval(function(){ 
     var xhr = new XMLHttpRequest(); 
     xhr.open('GET', 'http://mcapi.sweetcode.de/api/v2/?info&ip=jogar.millenarycraft.com', true); 
     xhr.onreadystatechange = new function(){ 
      document.getElementById("server_counter").innerHTML = 'ReadyState: ' + xhr.readyState; 
      if (xhr.readyState == 4) { 
       data = JSON.parse(xhr.responseText); 
       if(data.status){ 
        document.getElementById("server_counter").innerHTML = '<span>Jogadores online: <span style="color:#FD7C00;">' + data.player.online + '</span></span>'; 
       }else{ 
        document.getElementById("server_counter").innerHTML = '<span style="color:#FD7C00;">Servidor offline!</span>'; 
       } 
      } 
     } 
     xhr.send(); 
    }, 1000); 
} 

這是一個腳本標籤中和工作爲好,但我有剛剛從document.getElementById("server_counter").innerHTML = 'ReadyState: ' + xhr.readyState;上的問題。我注意到readystate停在1上,我不知道爲什麼!誰能幫我?

PS:而且問題不在於該URL,因爲我做了PHP版本和它的工作非常出色。我只想使用JavaScript,因爲我需要在一定時間內刷新頁面而不刷新頁面。

+3

是絕對* *爲零的jQuery在你的代碼。 –

+0

*「我只是想,因爲我沒有需要在一定時間刷新頁面來更新值使用jQuery。」 *不具有任何與jQuery的。你所描述的是製作XHR請求。 –

回答

2

我認爲你有意外的錯誤:

xhr.onreadystatechange = new function(){ 

更改爲:

xhr.onreadystatechange = function(){ 

new應該肯定不應該存在。我想,這是你的函數被調用你叫xhr.send()前一次,因此xhr.readyState1

+0

+1好。該函數被立即調用,並返回一個對象。 –

相關問題