似乎IE11版本11.0.7(Win7上的KB2929437,Win 8.1上的KB2919355)在执行Ajax POST操作时出现问题。操作返回状态0,在F12控制台上,出现以下错误:
SCRIPT7002: XMLHttpRequest: Network Error 0x2ee4, Could not complete the operation due to error 00002ee4.
重现此问题的条件如下:
我创建了以下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错误,但我不是百分百肯定,并且还没有来自IE团队的确认。请帮我确认这是IE漏洞,或者我的JavaScript代码是否有任何问题。
更新:
微软表示他们可以重现这个问题并进行调查。
答案 0 :(得分:5)
此错误导致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
},
});
});
答案 1 :(得分:4)
我在尝试对我们的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 SChannel Cryptographic Provider" -a sha256 -sy 12" C:\ EncryptionCert.cer"
将创建的Cert安装到客户端和服务器受信任的根证书Auth。
为我的网站绑定选择此证书后,我能够在IE 11中成功调用我的HTTPS WCF服务。
答案 2 :(得分:-4)
我也有同样的问题。起初我在发布之前使用make get请求。它解决了这个问题。但当我深入了解时,我发现它是互联网选项 - “高级选项
我解决了这个问题