阿里易源天气接口get请求 ie跨域"/>
阿里易源天气接口get请求 ie跨域
2019独角兽企业重金招聘Python工程师标准>>>
阿里应用市场购买易源天气接口,使用get请求,添加自定义头部(Authorization认证)遇到:
1.接口服务器端已经添加了允许跨域请求头部
360和谷歌浏览器可以正常浏览;
2.ie浏览器报错,请求中止
SCRIPT7002: XMLHttpRequest: 网络错误 0x80070005, 拒绝访问。
网上搜索cors preflight都是自定义请求头部导致,跨域请求问题,或者改成post,或者改成jsonp。
3.改用postman把接口跑了一遍,生成原生js请求,在ie里面没有出现请求中止的问题
4.仔细对比,发现我使用的地区名字是汉字,在get请求中汉字没有转码,在360和谷歌浏览器没有影响,在ie里面直接请求中止,使用encodeURI(city)转码以后就好了。
总结:
其实这不是跨域问题,而是ie里面get请求或者地址传参,汉字未转码导致的请求中断。困扰半天,都是基础问题!
$.ajax({"url": "="+encodeURI(city)+"&needMoreDay=1&needIndex=1&needAlarm=1", "type": "GET", "headers": { "Authorization": "APPCODE " +APPCode }, success: function (datas) { console.log(datas) if (datas) { var airdatesession=JSON.stringify(datas); sessionStorage.setItem('airdatesession',airdatesession); $scope.dateInfo=datas.showapi_res_body; $scope.toadyair=datas.showapi_res_body.now; $scope.alarmList=datas.showapi_res_body.alarmList; $scope.arr=[$scope.dateInfo.f2,$scope.dateInfo.f3,$scope.dateInfo.f4,$scope.dateInfo.f5] $scope.dayhour=day; } }, error: function (msg) { console.log(msg) } });
转载于:
更多推荐
阿里易源天气接口get请求 ie跨域
发布评论