IE11 Post请求跨域含有安全证书的url报(Network Error 0x2ee4)

问题:

今天在工作中遇到一个问题,使用Jquery请求一个跨域的https请求使用POST请求。报错

SCRIPT7002: XMLHttpRequest: Network Error 0x2ee4, Could not complete the operation due to error 00002ee4

但是在chrome下居然是没有问题的

原因:

由于IE11有默认设置安全策略的,而对方url需要证书,而一发送请求IE11则拒绝。
是由于ssl certificate(SSL证书) 是非法的

解决方式

第一种:设置下IE11设置


image.png

把该选项去掉则ok,但是这种方式不可能要客户去设置吧。

第二种:在post请求之前发送get请求,url为对方任意一地址

 $.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://stackoverflow.com/questions/23820444/ie11-returns-status-0-during-ajax-post-operation-from-an-iframe-xmlhttprequest

http://jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/

你可能感兴趣的:(IE11 Post请求跨域含有安全证书的url报(Network Error 0x2ee4))