亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于使用jsonp調用天氣之類api的問題

關于使用jsonp調用天氣之類api的問題

慕粉4118515 2017-08-03 18:39:08
比如我有一個天氣預報的api,返回的值是{ ????"HeWeather5":?[ ????????{ ????????????"basic":?{ ????????????????"city":?"北京", ????????????????"cnty":?"中國", ????????????????"id":?"CN101010100", ????????????????"lat":?"39.90498734", ????????????????"lon":?"116.40528870", ????????????????"update":?{ ????????????????????"loc":?"2017-08-03?17:50", ????????????????????"utc":?"2017-08-03?09:50" ????????????????} ????????} ========================================這樣沒有callback的回調值,如果不使用jquery庫而只使用js原生來實現jsonp的話,我無法回調函數,而且會出現SyntaxError: Unexpected token 錯誤。表明這個js文件的json寫法有誤。但是我如果使用jquery的$.ajax來實現則不需要去設置回調函數名和jsonp是否有callback值,請問原生js難道無法做到這點嗎?在網上搜索,大多數是告知修改服務器來添加callback,那么如果在前端考慮,不用jq如何正確獲取呢?這里貼出代碼。原生:var?HeWeather5?=?function?(data){ ????console.log(data); }; var?js=document.createElement("script"); js.src="https://free-api.heweather.com/v5/now?city=beijing&key=452970d722e14415bd7ac7eb391b0e11"; js.type="text/javascript"; document.getElementsByTagName("head")[0].appendChild(js);jquery:$(function?()?{ ????$.ajax( ????????{ ????????????url:'https://free-api.heweather.com/v5/now?city=beijing&key=452970d722e14415bd7ac7eb391b0e11', ????????????type:'get', ????????????datatype:'jsonp', ????????????success:function?(data)?{ ????????????????var?jsdata=eval(data); ????????????????var?msg=jsdata.HeWeather5[0]; ????????????????$("div").html("<ul>"+"<li>"+"您查詢的地點為"+msg.basic.city+"</li>"+"<li>"+"天氣"+msg.now.cond.txt+"</li>"+"<li>"+"溫度"+msg.now.fl+"</li>"+"<li>"+"風向"+msg.now.wind.dir+"</li>") ????????????} ????????} ????) })
查看完整描述

1 回答

?
拖鞋_

TA貢獻453條經驗 獲得超223個贊

JSONP的原理 并不是AJAX

原理是? 動態在頁面生成一個script 標簽? 這個標簽的SRC設定為跨域請求的地址? 獲得數據后 解析JS拿到你想要的值

查看完整回答
反對 回復 2017-08-04
  • 1 回答
  • 2 關注
  • 2516 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號