JSONP

1、簡單,原理:
1)函數(shù)定義
2)函數(shù)調(diào)用

2、如果我們想要調(diào)用jsonp接口來取數(shù)據(jù),步驟:
1)把鏈接地址放到瀏覽器中看看
2)自己定義函數(shù)
3)用js標簽把接口地址引用

3、如果我們想要調(diào)用jsonp接口來取數(shù)據(jù),步驟:
1)把鏈接地址放到瀏覽器中看看
2)自己定義函數(shù) -> 參數(shù): jsonp的數(shù)據(jù)
3)動態(tài)創(chuàng)建javascript 標簽

/**
 *
 * @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標簽使用完,刪除
        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);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容