业主使用的web应用使用了ie9内核,导致后台接口通过$.ajax无法进行请求,为了兼容ie9以及以下的浏览器版本,尝试了各种方法:
1、更改ie浏览器设置,将通过域访问数据源设置为允许或者提示(ie浏览器设置--Internet选项--安全--自定义级别--通过域访问数据源-同意或者提示),重启浏览器,但是没用
2、在请求前设置
jQuery.support.cors = true;
也没效果
3、在&.ajax运行前增加一这段代码(亲测有效)
jQuery.support.cors = true;
jQuery.ajaxSetup({
xhr: function() {
if(window.ActiveXObject){
return new window.ActiveXObject("Microsoft.XMLHTTP");
}else{
return new window.XMLHttpRequest();
}
}
});
加这段代码的前提: (1)在nginx进行项目接口跨域配置
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
(2)如果不方便配置nginx,那么就在所有需要设置跨域的接口处加上跨域注解@CrossOrigin即可
此方法必须同时设置ajaxSetup和cros=true,然后接口配置跨域就可以实现兼容ie9及以下浏览器