ajax跨域请求 IE失败,谷歌、火狐访问正常的解决办法

 

在前端开发过程中遇到一个问题:chrome、火狐可以正常访问跨域服务接口,将调用的一次请求分成两次请求OPTIONS和POST,但IE就发送了一个OPTIONS请求后就没下文了,ajax直接到error,原来是IE阻止了POST请求,如下设置下就可以正常访问。

1、通过【internet选项】->【安全】->【自定义级别】->启用【通过域访问数据源】选项,设置后重启浏览器。

ajax跨域请求 IE失败,谷歌、火狐访问正常的解决办法_第1张图片

2、如果IE是10以下,请求参数中还需要设置跨域参数

var token="xx";
var url="xxxx";
$.ajax({
            type: "POST",
            url: url,
            async: false,
            contentType: 'text/plain',
            dataType: "json",
            data: data,
            crossDomain:true==!(document.all),//IE10以下浏览器需 加上这句!!!
            headers: {
             Authorization: "Bearer " + token
                },
            success: function (d) {
                $("body").text('success');
            },
            error: function (a, b, c) {
                $("body").text('failed');
            }});

 

你可能感兴趣的:(网络)