发送XMLHttpRequest同步请求的时候报错了,不知道怎么回事,求解

function test(){
    var xhr = new XMLHttpRequest();
    xhr.timeout = 5000;
    xhr.ontimeout = function(){console.log("已执行ontimeout函数")}
    console.log("准备open...");
    xhr.open("GET", "https://www.google.com", false);
    xhr.onreadystatechange = function(){
        if(xhr.readyState==4){
            console.log("得到服务器响应:"+xhr.responseText+",响应码为:"+xhr.status)
        }
    }
    console.log("准备send...");
    xhr.send(null);
}

无标题.png
请问为啥会报这个错啊?我是同步的请求就不能设置时间了么?如果我想在同步请求时设置超时时间怎么做呢?

阅读 5.4k
2 个回答

说的已经很清楚了,同步请求不能设置 timeout,如果同步请求不是必须得,可以改为异步:

xhr.open("GET", "https://www.google.com", true);

XMLHttpRequest.timeout 是一个无符号长整型数,代表着一个请求在被自动终止前所消耗的毫秒数。默认值为 0,意味着没有超时。超时并不应该用在一个 document environment 中的同步 XMLHttpRequests 请求中,否则将会抛出一个 InvalidAccessError 类型的错误。当超时发生, timeout 事件将会被触发。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏