Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XmlHttpRequest.onload在边缘浏览器中不工作_Javascript_Microsoft Edge_Onload - Fatal编程技术网

Javascript XmlHttpRequest.onload在边缘浏览器中不工作

Javascript XmlHttpRequest.onload在边缘浏览器中不工作,javascript,microsoft-edge,onload,Javascript,Microsoft Edge,Onload,我遇到了一个问题,Microsoft Edge browser无法执行XmlHttpRequest.onload。但它确实在Chrome、Firefox和Safari中执行 我正在创建一个XmlHttpRequest对象: var xhr = new XMLHttpRequest(); xhr.responseType = "json"; xhr.open("POST", authenticateUrl, true); xhr.setRequestHeader("X-OpenAM-Usernam

我遇到了一个问题,Microsoft Edge browser无法执行
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
函数。微软Edge不会介入此事。正如我所说,Chrome、Firefox和Safari可以很好地执行这段代码


要使Microsoft Edge运行此代码,是否还需要一些其他功能?

在发送XHR并返回响应之前,不应调用onload函数(除非出现错误)。您正在调用xhr.send()


xhr.responseType=“json”
行放在
xhr.open(…)

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

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

尝试添加一个

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

查看是否发生错误。

您链接的MDN页面上的示例仅在定义了
.onload
之后才执行
send()
。是,
xhr.send()onload
返回来自XHR.com的响应后调用code>。onreadystatechange有效吗?我试图用您的代码进行测试,但onload事件在任何浏览器中都无法执行。你能展示一下你的测试结果吗。这样我们就可以检查它了。你能用它代替onload吗?不知道为什么onload不起作用,但也许你可以绕过它。你期待什么?我在所有主要浏览器上都尝试了您的代码片段,但在请求完成之前,没有一个浏览器启动
onload
。我将responseType移到
xhr.open()
之后,但这并没有解决问题。