ajax跨域请求在IE8中存在的问题

从没打算怎么去兼容老版本IE,毕竟微软自己都放弃了,可是最近做好的东西在所有的IE下都会出问题:GetJson不执行

本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并没有什么卵用。

本身是要通过Yahoo Query Language去获取一个页面中的数据的,如果在所有的IE上都用不了,那的确是个问题。但比较奇怪的是,其他所有浏览器都几乎没有任何问题,直接请求雅虎的地址,然后就能取出结果。

于是一行一行的调试,状态码直接返回了0,于是有点怀疑是否是跨域的问题了。

通过在雅虎API的地址里面添加callback=?,再使用$.GetJson去请求,好了,问题解决。

 1 //Yahoo API
 2         var user_count="(网络错误,加载失败)"; //商户数量
 3         var yql_url="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url=%27http://www.example.com%27&format=json&callback=?&env=store://datatables.org/alltableswithkeys/?random="+new Date().getTime();
 4         $.getJSON(yql_url, function (data) {
 5             try{
 6                 user_count=data.query.results.body.div[3].div.div.ul.li[0].div[0].h4.font;
 7             }catch(e){};
 8             //成功获取结果,并且页面加载完毕
 9             $(function(){
10                 //将结果追加到页面中
11                 $(".user_count").html(user_count);
12                 //如果成功获取,则放入cookie备用
13                 if(user_count!="(网络错误,加载失败)"){
14                     $.cookie('user_count', user_count, {expires: 1});
15                 };
16             });
17         });

所以基本上改来改去,就兼容了个IE8,其他浏览器暂未测试,至少新版的浏览器是没问题了,至于其他老版本浏览器,反正初衷也只是为了解决所有IE下的问题,不弄了。

转载于:https://www.cnblogs.com/jiangkun/p/IE8_Ajax_Jsonp_YQL_YahooQueryLanguage.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值