比如我有一個天氣預報的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>")
????????????}
????????}
????)
})
關于使用jsonp調用天氣之類api的問題
慕粉4118515
2017-08-03 18:39:08