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/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   2005 年,Jesse James Garrett 发表了一篇在线文章,题为“Ajax: A new App...
    霜天晓阅读 903评论 0 1
  • Ajax和XMLHttpRequest 我们通常将Ajax等同于XMLHttpRequest,但细究起来它们两个是...
    changxiaonan阅读 2,300评论 0 2
  • 1、XMLHttpRequest 对象 在浏览器中创建XHR 对象 1.1 XHR 的用法 在使用XHR 对象时,...
    shanruopeng阅读 597评论 0 1
  • HTTP与HTTPS的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以...
    蔬菜妞阅读 1,053评论 0 5
  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 3,298评论 0 7