代码之家  ›  专栏  ›  技术社区  ›  Tom

如何读取XMLHttpRequest响应

  •  -1
  • Tom  · 技术社区  · 7 年前

    我正在做这样的XMLHttpRequest:

    var url = "myurl.html";
    var http_request=new XMLHttpRequest();
    http_request.onreadystatechange=function(){
      if (http_request.readyState === 4){
        console.log(http_request.response);
      }
    };
    http_request.withCredentials = true;
    http_request.open('GET',url,true);
    http_request.send(null);
    

    在控制台中 http_request.response 是空的,但当我在Chrome中查看网络选项卡时,我得到了这个东西 enter image description here

    如何从JavaScript获取这些内容?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Tom    7 年前

    请求来自同一网络上的另一台计算机。服务器位于 myurl.html

    访问控制允许原点:*

    (*代表 wildcard )

    当标头缺少该信息时,Chrome将阻止JavaScript中的响应。因此,network选项卡将显示响应,但不会显示JS控制台。要在不同的浏览器中绕过COR,有几种方法。我使用了Chrome网络商店的扩展。

    为了进一步确保请求正确完成,可以将回调函数修改为 this :

    http_request.onreadystatechange = function () {
      if(http_request.readyState === XMLHttpRequest.DONE && http_request.status === 200) {
        console.log(http_request.responseText);
      }
    };
    

    http_request.readyState 应为4,但状态应为0(即使在网络选项卡中显示为200)。