什么是JSONP

什么是JSONP

  1. 請求方動態(tài)創(chuàng)建script標簽绳锅,src指向響應方冀自,同時傳一個查詢參數 榴嗅?callbackName=xxx
  2. 響應方根據查詢參數構造如:xxx.call(undefined,'你要的數據')這樣的響應
  3. 瀏覽器接收到響應化借,就會執(zhí)行xxx.call(undefined,'數據')
    這就是JSONP

行業(yè)約定:

  • callbackName ==> callback
  • xxx ==>隨機數 比如:jp128884
let functionName= 'jp' + parseInt(Math.radom() * 10000)
window[functionName] = function(){}
delete window[radomName] //使用完后干掉這個函數,下次使用會生成新的

后端不需要知道前端的具體細節(jié)
后端返回主要數據若為一個JSON帜乞,JSON的左邊為回調函數部分司抱,右邊為).即左邊一個padding,右邊一個padding黎烈,习柠,JSON + padding =JSONP

這個技術的名字起的很爛!怨喘!
換個好理解的名字可以稱之為: 動態(tài)標簽跨域請求

  1. 原生代碼實現(xiàn)JSONP
        let script = document.createElement('script')
        let functionName = 'jp' + parseInt(Math.random() * 10000,10)
        script.src = '/pay?callback=' + functionName
        window[functionName] = function(response){
            console.log('收到數據為:' + response)
            amount.innerText = amount.innerText - 1
            delete window[functionName]
        }
        document.body.appendChild(script)
        script.onload = function(e){
            e.currentTarget.remove()
        }
  1. jQuery實現(xiàn)JSONP
$.ajax({
    url: "http://query.yahooapis.com/v1/public/yql",
 
    // The name of the callback parameter, as specified by the YQL service
    jsonp: "callback",
 
    // Tell jQuery we're expecting JSONP
    dataType: "jsonp",
 
    // Tell YQL what we want and that we want JSON
    data: {
        q: "select title,abstract,url from search.news where query=\"cat\"",
        format: "json"
    },
 
    // Work with the response
    success: function( response ) {
        console.log( response ); // server response
    }
});

jQuery里把JSONP放在AJAX里面津畸,但實際上JSONP和AJAX沒有關系。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末必怜,一起剝皮案震驚了整個濱河市肉拓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梳庆,老刑警劉巖暖途,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卑惜,死亡現(xiàn)場離奇詭異,居然都是意外死亡驻售,警方通過查閱死者的電腦和手機露久,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欺栗,“玉大人毫痕,你說我怎么就攤上這事〕偌福” “怎么了消请?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長类腮。 經常有香客問我臊泰,道長,這世上最難降的妖魔是什么蚜枢? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任缸逃,我火速辦了婚禮,結果婚禮上厂抽,老公的妹妹穿的比我還像新娘需频。我一直安慰自己,他們只是感情好筷凤,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布贺辰。 她就那樣靜靜地躺著,像睡著了一般嵌施。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上莽鸭,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天吗伤,我揣著相機與錄音,去河邊找鬼硫眨。 笑死足淆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的礁阁。 我是一名探鬼主播巧号,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姥闭!你這毒婦竟也來了丹鸿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤棚品,失蹤者是張志新(化名)和其女友劉穎靠欢,沒想到半個月后廊敌,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡门怪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年骡澈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掷空。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡肋殴,死狀恐怖,靈堂內的尸體忽然破棺而出坦弟,到底是詐尸還是另有隱情护锤,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布减拭,位于F島的核電站蔽豺,受9級特大地震影響,放射性物質發(fā)生泄漏拧粪。R本人自食惡果不足惜修陡,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望可霎。 院中可真熱鬧魄鸦,春花似錦、人聲如沸癣朗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旷余。三九已至绢记,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間正卧,已是汗流浹背蠢熄。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炉旷,地道東北人签孔。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像窘行,于是被迫代替她去往敵國和親饥追。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容