1、簡單,原理:
1)函數(shù)定義
2)函數(shù)調(diào)用
2、如果我們想要調(diào)用jsonp接口來取數(shù)據(jù),步驟:
1)把鏈接地址放到瀏覽器中看看
2)自己定義函數(shù)
3)用js標(biāo)簽把接口地址引用
3、如果我們想要調(diào)用jsonp接口來取數(shù)據(jù),步驟:
1)把鏈接地址放到瀏覽器中看看
2)自己定義函數(shù) -> 參數(shù): jsonp的數(shù)據(jù)
3)動態(tài)創(chuàng)建javascript 標(biāo)簽
/**
*
* @param json
* json.url -- string 接口地址
* json.data -- json 接口需要的參數(shù)
* json.cbName -- string 函數(shù)名字
* json.success -- function 成功的回調(diào)
*/
function jsonp(json){
var json = json || {};
if(!json.url){
alert('jsonp滾!');
return;
}
json.data = json.data || {};
json.cbName = json.cbName || 'cb';
var fnName = 'jsonb_'+Math.random();
fnName = fnName.replace('.','');
window[fnName] = function(json2) {
json.success && json.success(json2);
//創(chuàng)建的script標(biāo)簽使用完,刪除
oHead.removeChild(oS);
}
var oS = document.createElement('script');
json.data[json.cbName] = fnName;
var arr = [];
for(var name in json.data){
arr.push(name + '=' + json.data[name]);
}
oS.src = json.url + '?' + arr.join('&');
//'http://suggestion.baidu.com/su?wd='+oT.value+'&cb='+fnName;
//show({q:"j",p:false,s:["京東","京東商城","java","jd","錦繡未央","今夜百樂門","建設(shè)銀行","今日頭條","交通銀行","計算器"]});
//document.head.appendChild(oS);
var oHead = document.getElementsByTagName('head')[0];
oHead.appendChild(oS);
}