鍍金池/ 問答/HTML5  HTML/ b站網(wǎng)站一個(gè)奇怪get請(qǐng)求

b站網(wǎng)站一個(gè)奇怪get請(qǐng)求

查看b站時(shí),發(fā)現(xiàn)一個(gè)奇怪的GET請(qǐng)求:

https://api.bilibili.com/x/web-show/res/loc?callback=jQuery17207120742371497628_1532268552145&pf=0&id=142&jsonp=jsonp&_=1532268552332

問號(hào)后面一大堆是什么東東?

jQuery17207120742371497628_1532268552145 這是什么意思

相關(guān)代碼

https://api.bilibili.com/x/web-show/res/loc?callback=jQuery17207120742371497628_1532268552145&pf=0&id=142&jsonp=jsonp&_=1532268552332

哪位大神答疑解惑一下

回答
編輯回答
薔薇花

你既然知道 GET 請(qǐng)求,那難道不知道問號(hào)后面的是 parameter string 嗎?

這堆參數(shù)里 jQuery17 那個(gè)看它對(duì)應(yīng)的參數(shù)名 "callback" 很顯然是個(gè)(生成的)本地回調(diào)函數(shù)的名字,這個(gè)結(jié)合后面的 jsonp=jsonp 可以確認(rèn)。

如果你不了解的話可以百度一下 JSONP 的定義。

至于其他參數(shù),_ 看起來(lái)是時(shí)間戳,id 沒啥好說(shuō)的,pf 就不知道了,也許是狀態(tài)參數(shù)也許是頁(yè)面參數(shù)。

2017年11月5日 10:32
編輯回答
孤巷

跨域請(qǐng)求,jsonp

2018年1月24日 10:02
編輯回答
還吻

這是JSONP請(qǐng)求,利用script標(biāo)簽可以跨域的特性來(lái)解決跨域前后端跨域問題
前端的一個(gè)函數(shù)為

function callback(data) {
    // 對(duì)data的處理
}

前端發(fā)請(qǐng)求帶上callback的名稱,后端返回一個(gè)js文件內(nèi)容為:(data即為返回的數(shù)據(jù))

callback(data)

這樣前端只需要使用該請(qǐng)求的鏈接創(chuàng)建一個(gè)script標(biāo)簽并且掛載到頁(yè)面上就會(huì)自動(dòng)運(yùn)行這個(gè)函數(shù)并且從參數(shù)中獲得后端返回的數(shù)據(jù)

至于jQuery后面那一大串其實(shí)是一個(gè)唯一標(biāo)識(shí)符,避免存在多個(gè)callback的時(shí)候不同的請(qǐng)求的返回結(jié)果串了

2017年10月17日 20:23