解决IE8IE9 jquery ajaxj 跨域请求失败的问题。
失败原因:
IE10+ 才支持withCredentials属性
,IE9- 不支持,跨域对象只能用XDomainRequest对象,而jQuery并不兼容XDomainRequest..
针对此方法网络上有解决的插件 jQuery-ajaxTransport-XDomainRequest
插件使用办法:
<!--首先要引入jquery包-->
<script src="js/jquery-3.2.1.min.js"></script>
<!--当ie9及以下时加载插件-->
<!--[if lte IE 9]>
<script type="text/javascript"
src="js/jquery.xdomainrequest.min.js">
</script>
<![endif]-->
<!--ajax代码-->
<script>
jQuery.support.cors = true (这个可以加上,在ajax前,以防万一)
$.ajax({
url:
type:get/post
data:
...
})
</script>
存在问题:当请求为post时,无法向后台传递data中的参数,方法是将data中的参数直接放在url中
例如:
$.ajax(
{
type: "POST",
url: "http://114.55.58.124:80/banma/app/activity/getActivityByActivityId?activityId="+getUrlData()["id"],
// data: "activityId="+getUrlData()["id"],
dataType: "json",
error: function (a, b, c) {
alert("请求出错,错误原因:"+c);
},
success: function(data, textStatus, jqXHR ){
。。。
}else {
alert("数据不存在");
}
}
}
);