0

我的 onreadystatechange 回调中的 readyState 似乎停留在 1。

  let req
  function reloadData(){
    let now = new Date()
    url = 'liveData?' + now.getTime()
    try {
      req = new XMLHttpRequest()
    } catch (e) {
      try {
        req = new ActiveXObject("Msxml2.XMLHTTP")
      } catch (e) {
        try {
          req = new ActiveXObject("Microsoft.XMLHTTP")
        } catch (oc) {
          alert("No AJAX Support")
          return
        }
      }
    }

    req.onreadystatechange = processData
    req.open("GET", url, true)
    req.send(null)
  }
  function processData(){
    alert(req.readyState)
    // If req shows "complete"
    if (req.readyState == 4){
      dataDiv = document.getElementById('currentData')
      // If "OK"
      if (req.status == 200)
      {
        // Set current data text
        dataDiv.innerHTML = req.responseText
      }
      else
      {
        // Flag error
        dataDiv.innerHTML = '<p>There was a problem retrieving data: ' + req.statusText + '</p>'
      }
    }
  }

请求本身有效,我在 /liveData 收到请求时记录,我也收到该日志。我没有错误,并且警报本身可以正常工作,因此可以正确调用,但是 readyState 始终为 1。

4

1 回答 1

0

原来服务器只是没有发送响应,感谢异端猴子在评论中指出这一点。

于 2020-02-08T21:13:19.123 回答