今天在开发网站的时候,发现一个问题,
$.ajax()
在 IE8,9 浏览器不起作用,但 Chrome,Firefox ,360,IE10以上等浏览器却是可以的,网上资料很多,查询最后发现是 IE8,9 默认不支持 CORS 请求,需要手动开启下 代码如下:
jQuery.support.cors = true; //写在$.ajax()前面
用户这样设置:点击IE浏览器的的“工具->Internet 选项->安全->自定义级别”将“其他”选项中的“通过域访问数据源”选中为“启用”或者“提示”,点击确定IE8,9就获取到数据了
但是不可能每个用户都这样设置,这样太过麻烦,此方法不友好!
最后网上查询到一个插件可以解决此问题:跨域方式的插件jquery.xdomainrequest.min.js,将此插件引入到HTML页面中即可
完整代码示范如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery.Ajax IE8,9跨域</title>
<script src="jquery-1.11.1.min.js"></script>
<script src="jquery.xdomainrequest.min.js"></script>
</head>
<body>
<script>
jQuery.support.cors = true;
//$ajax({}) 正常写
$.ajax({
type : "GET",
dataType : "JSON",
url : "url",
success: function(data){
//执行事件
},
error:function(){
alert("错误");
}
});
</script>
</body>
</html>
jquery.xdomainrequest.min.js 插件github上搜索:jQuery-ajaxTransport-XDomainRequest 可以下载
更多专业前端知识,请上 【猿2048】www.mk2048.com