解决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("数据不存在");
}
}
}
);




原文地址:https://www.cnblogs.com/mei123/p/8708075.html