首页 > 解决方案 > XmlHttpRequest.onload 在 Edge 浏览器中不起作用

问题描述

我遇到了 Microsoft Edge 浏览器无法执行的问题XmlHttpRequest.onload。但它确实在 Chrome、Firefox 和 Safari 中执行。

我正在创建一个 XmlHttpRequest 对象:

var xhr = new XMLHttpRequest();
xhr.responseType = "json";
xhr.open("POST", authenticateUrl, true);
xhr.setRequestHeader("X-OpenAM-Username", email);
xhr.setRequestHeader("X-OpenAM-Password", password);
xhr.setRequestHeader("Content-Type", "application/json");

alert("XHR object is created"); 

xhr.onload = function () {
  alert("start onload...");

  //...receives response from service...
}

xhr.send();

用于验证其到达特定代码行的警报。创建 XMLHttpRequest 对象后,代码进入onload函数。Microsoft Edge 不会参与其中。正如我所说,Chrome、Firefox 和 Safari 可以很好地执行此代码。

让 Microsoft Edge 运行此代码是否还需要一些额外的东西?

标签: javascriptmicrosoft-edgeonload

解决方案


xhr.responseType = "json"线放在后面xhr.open(...)

因为xhr.responseType同步请求是不允许的,这是由open()调用中的第三个参数确定的。

等等,那是在 IE11 中,我在 Edge 中尝试过你的代码片段,它运行得很好。

尝试添加一个

xhr.onerror = err => alert('Error:' + err.message);

查看是否发生错误。


推荐阅读