IE11在Ajax POST操作期间从iFrame返回状态0(XMLHttpRequest:网络错误0x2ee4)

nik*_*iko 11 javascript ajax https iframe internet-explorer-11

似乎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.
Run Code Online (Sandbox Code Playgroud)

重现此问题的条件如下:

  1. 仅在特定的IE11上发生,即版本11.0.7(Win7上的KB2929437,Win 8.1上的KB2919355)
  2. iframe用于使用https协议加载外部页面(父页面使用http协议)
  3. 使用方法'POST'的ajax
  4. 更常见的是连接:IIS设置了Keep-Alive标头
  5. 更频繁地发生在IE11的Win32版本上

我创建了以下jsfiddle来重现这个问题:http://jsfiddle.net/VJ2D6/12/

$(document).ready(function () {
     $('#frame').attr('src', 'https://54.249.142.247/ie11/test.html');
});
Run Code Online (Sandbox Code Playgroud)

请注意,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的网络错误,0x2ee4#标签

我认为这是一个IE11错误,但我不是100%肯定,并且还没有来自IE团队的确认.请帮我确认这是一个IE错误,或者我的JavaScript代码是否有任何问题.

更新:

微软表示,他们可以重现这个问题并进行调查.

小智 5

此错误是导致ssl证书无效.要解决此错误,请参阅:[链接]

    $.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
        },
    });
});
Run Code Online (Sandbox Code Playgroud)