问题:
今天在工作中遇到一个问题,使用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设置
把该选项去掉则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
},
});
});
这个行为会弹出询问框,是否要安装电子证书,点击则正常运行。
http://jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/