XMLHttpRequest读取渐进式数据不起作用?

Jon*_*ona 5 javascript xmlhttprequest

我遇到了XMLHttpRequest下载渐进式数据的问题.我得到状态2而不是状态3.在状态3之后它再也不会被调用.我究竟做错了什么?我读到了需要刷新数据的地方,但我该怎么做?

这是我的代码:

var xmlHttp = new XMLHttpRequest();
// try to connect to the server
try
{
  // initiate server request
  xmlHttp.open("GET", "http://208.43.121.133:8164/;", true);
  xmlHttp.setRequestHeader("Icy-Metadata", "1");
  xmlHttp.onreadystatechange = function() 
  {
    alert("status: "+xmlHttp.status);
    alert("State: "+xmlHttp.readyState);

    if (xmlHttp.readyState == 3)
    {
      alert(xmlHttp.responseText);
    }
  };
  xmlHttp.send(null);
}
// display an error in case of failure
catch (e)
{
  alert("Can't connect to server:\n" + e.toString());
}
Run Code Online (Sandbox Code Playgroud)

我准备好在readyState为3时读取xmlHttp.responseText吗?

Jua*_*des -4

Kranu是正确的,当readyState为3时,您不允许读取responseText。请参阅http://www.davidflanagan.com/2005/08/xmlhttprequestreadystate-3.html

解决方案是一次发送一条消息。当您收到一条消息时,只需再制作另一条 XHR 即可。这就是谷歌(确实?)服务器推送的方式。