XMLHttpRequest readyState在1上停止

时间:2014-06-06 16:37:39

标签: javascript

我在使用此代码时遇到了一些问题:

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,因为我需要更新值而不在一定时间内刷新页面。

1 个答案:

答案 0 :(得分:2)

我认为你有一个意想不到的错误:

xhr.onreadystatechange = new function(){

更改为:

xhr.onreadystatechange = function(){

new绝对不应该存在。我认为,在您调用xhr.send()之前,您的功能会被调用一次,因此xhr.readyState1