我看到此错误:“[弃用]主线程上的同步 XMLHttpRequest 已弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请检查 https://xhr.spec.whatwg.org/。” ,在此代码上:
var request;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
}else{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', 'http://www.mywebsite.com', false);
request.send();
我应该用什么来替换这些说明,因为它们已被弃用?
你只需要改变
request.open('GET', 'http://www.mywebsite.com', false);
到
request.open('GET', 'http://www.mywebsite.com', true);
这将使请求异步操作,这意味着发送后的代码将立即执行,而不是等待请求完成。然后,您可以使用事件侦听器告诉请求完成后要运行哪些代码。
request.onreadystatechange = function () {
if(request.readyState === XMLHttpRequest.DONE) {
console.log("Request completed!");
}
}
request.open('GET', 'http://www.mywebsite.com', false)
这意味着您正在创建对 Web 服务的同步调用。所以理论上不要期待任何回电。
因此,要继续上述方法,请确保主体也为空。
request.send(null);
if (request.status === 200) {
console.log(request.responseText);
}
null参数表示GET请求不需要body内容。 因此线程不会被阻塞。
我收到此警告是因为我已声明
/js/main.js" type="text/javascript">两次成功:函数(数据),其中数据与脚本声明一起获取,而且我在标题上定义了脚本,该脚本在每个页面上都可见。 当我从获取的数据中删除 /js/main.js" type="text/javascript"> 时。它解决了我的问题。