阿里易源天氣接口get請求 ie跨域

阿里應用市場購買易源天氣接口,使用get請求,添加自定義頭部(Authorization認證)遇到:ajax

1.接口服務器端已經添加了容許跨域請求頭部json

360和谷歌瀏覽器能夠正常瀏覽;api

2.ie瀏覽器報錯,請求停止跨域

SCRIPT7002: XMLHttpRequest: 網絡錯誤 0x80070005, 拒絕訪問。瀏覽器

網上搜索cors preflight都是自定義請求頭部致使,跨域請求問題,或者改爲post,或者改爲jsonp。服務器

3.改用postman把接口跑了一遍,生成原生js請求,在ie裏面沒有出現請求停止的問題網絡

4.仔細對比,發現我使用的地區名字是漢字,在get請求中漢字沒有轉碼,在360和谷歌瀏覽器沒有影響,在ie裏面直接請求停止,使用encodeURI(city)轉碼之後就行了。session

總結:cors

其實這不是跨域問題,而是ie裏面get請求或者地址傳參,漢字未轉碼致使的請求中斷。困擾半天,都是基礎問題!post

$.ajax({"url": "http://ali-weather.showapi.com/spot-to-weather?area="+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) } });

相關文章
相關標籤/搜索