ajax跨域请求在IE8中存在的问题
2016-02-21 02:02
387 查看
从没打算怎么去兼容老版本IE,毕竟微软自己都放弃了,可是最近做好的东西在所有的IE下都会出问题:GetJson不执行
本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并没有什么卵用。
本身是要通过Yahoo Query Language去获取一个页面中的数据的,如果在所有的IE上都用不了,那的确是个问题。但比较奇怪的是,其他所有浏览器都几乎没有任何问题,直接请求雅虎的地址,然后就能取出结果。
于是一行一行的调试,状态码直接返回了0,于是有点怀疑是否是跨域的问题了。
通过在雅虎API的地址里面添加callback=?,再使用$.GetJson去请求,好了,问题解决。
所以基本上改来改去,就兼容了个IE8,其他浏览器暂未测试,至少新版的浏览器是没问题了,至于其他老版本浏览器,反正初衷也只是为了解决所有IE下的问题,不弄了。
本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并没有什么卵用。
本身是要通过Yahoo Query Language去获取一个页面中的数据的,如果在所有的IE上都用不了,那的确是个问题。但比较奇怪的是,其他所有浏览器都几乎没有任何问题,直接请求雅虎的地址,然后就能取出结果。
于是一行一行的调试,状态码直接返回了0,于是有点怀疑是否是跨域的问题了。
通过在雅虎API的地址里面添加callback=?,再使用$.GetJson去请求,好了,问题解决。
//Yahoo API var user_count="(网络错误,加载失败)"; //商户数量 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(); $.getJSON(yql_url, function (data) { try{ user_count=data.query.results.body.div[3].div.div.ul.li[0].div[0].h4.font; }catch(e){}; //成功获取结果,并且页面加载完毕 $(function(){ //将结果追加到页面中 $(".user_count").html(user_count); //如果成功获取,则放入cookie备用 if(user_count!="(网络错误,加载失败)"){ $.cookie('user_count', user_count, {expires: 1}); }; }); });
所以基本上改来改去,就兼容了个IE8,其他浏览器暂未测试,至少新版的浏览器是没问题了,至于其他老版本浏览器,反正初衷也只是为了解决所有IE下的问题,不弄了。
相关文章推荐
- Delphi 的类型与指针[1]
- Hrbustoj 1429 二分+计算几何
- AngularJS in Action读书笔记2——view和controller的那些事儿
- 欢迎使用CSDN-markdown编辑器
- UICollectionView自定义Layout之蜂窝布局
- Hrbust Online Judge--移动2
- reveal UI 分析工具简单使用 内附1.5.1破解版下载地址
- IdentityServer3——入门教程:创建简单的OAuth2.0服务器,客户端和API
- 【POJ】[1258]Agri-Net
- ROM、RAM、DRAM、SRAM和FLASH的区别
- Sublime Text 3 for Mac 3075破解版,内附下载地址
- 初识jQuery
- mysql常用语句大全
- 【POJ】[1751]Highways
- MongoDB javaApi
- iOS打包发布测试版本
- Fibonacci编译错误之思考
- 数据结构(7)—栈的应用之迷宫求解
- Swift基础学习(2)
- Android OS体系结构详解