IE11在iFrame的Ajax POST操作期间返回状态0 (XMLHttpRequest: Network Erro
IE11 returns status 0 during Ajax POST operation from an iFrame (XMLHttpRequest: Network Error 0x2ee4)
似乎IE11 11.0.7版本(Win7上的KB2929437, win8.1上的KB2919355)在执行Ajax POST操作时存在问题。该操作返回状态0,并且在F12控制台上出现以下错误:
SCRIPT7002: XMLHttpRequest: Network Error 0x2ee4, Could not complete the operation due to error 00002ee4.
重现此问题的条件如下:
- 仅在特定的IE11上发生,即11.0.7版本(KB2929437)Win7, KB2919355 (Win 8.1)
- iframe使用https协议加载外部页面(父页面使用http协议)
- ajax与方法'POST'被使用
- 在IIS 设置Connection: Keep-Alive头时更经常发生
- 更频繁地发生在Win32版本的IE11
我创建了以下jsfiddle来重现这个问题:http://jsfiddle.net/VJ2D6/12/
$(document).ready(function () {
$('#frame').attr('src', 'https://54.249.142.247/ie11/test.html');
});
请注意,iframe从另一个站点54.249.142.247(由使用IIS7的EC2节点托管)检索其源,因为jsfiddle不托管https。而且,由于我使用的是自签名SSL证书,请先将证书安装到受信任的根,并在Internet选项-高级选项卡中关闭"关于证书地址不匹配的警告"。
在54.249.142.247/ie11/test.html中,我创建了一个按钮,它向一个不存在的位置发起Ajax POST操作。正常情况下,此请求应该返回状态404错误(未找到)。但是在IE11 11.0.7版本的情况下,它经常返回状态0错误,并在F12控制台显示网络错误0x2ee4,"
我把同样的问题贴在Microsoft Connect上:https://connect.microsoft.com/IE/feedback/details/877525/ie11-returns-status-0-during-ajax-post-operation-from-an-iframe-xmlhttprequest-network-error-0x2ee4#tabs
我认为这是一个IE11的bug,但我不能百分之百确定,IE团队也没有确认。请帮我确认一下,这是IE的bug,还是我的JavaScript代码有问题。
更新:
微软表示,他们可以重现这个问题,并将进行调查。
ssl证书无效。要解决此错误,请参见:[Link]
$.get(window.api + 'Values', null, null).done(function () {//solution for IE shit
$.ajax({
type: 'POST',
url: https://api.yourdomain.com,
data: yourData,
success: function (data) {
//do something
},
});
});
当尝试对我们的HTTPS WCF服务(CORS)进行POST调用时,我遇到了同样的问题,看起来这是因为SSL证书。我必须用下面的MakeCert命令行
重新创建我的makecert.exe -r -pe -n "CN=*.YourDomain.com" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA通道加密提供程序" -a sha256 -sy 12 "C:'EncryptionCert.cer"
将创建的证书安装到客户端和服务器可信根证书Auth中。
在为我的站点绑定选择了这个证书之后,我能够成功地在IE 11中调用我的HTTPS WCF服务
我也有同样的问题。首先,我在发布前使用get请求。它解决了问题。但当我深入研究时,我发现它是在互联网选项-"高级选项
"- 取消服务器证书撤销检查*
- 取消对发行者证书撤销的检查*
- 单击ok
- 重新启动浏览器
i resolved the issue
输入图片描述
- 事件和状态
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- XMLHttpRequest未返回值-状态202
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使bxslider仅在移动视图中处于活动状态
- 获取ASP.NET Ajax Timer状态
- React redux初始化功能,无论状态变化如何
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 从组件状态的数组中删除元素
- iOS 中的按钮触摸状态
- 使用AngularJS中的UI路由器将状态重定向到默认子状态
- 设计redux状态树