我在使用此代码时遇到了一些问题:
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,因为我需要更新值而不在一定时间内刷新页面。
答案 0 :(得分:2)
我认为你有一个意想不到的错误:
xhr.onreadystatechange = new function(){
更改为:
xhr.onreadystatechange = function(){
new
绝对不应该存在。我认为,在您调用xhr.send()
之前,您的功能会被调用一次,因此xhr.readyState
为1
。