jQuery的$.ajax跨域時(shí)發(fā)出的請(qǐng)求類型是xhr,并不是script,也沒有發(fā)現(xiàn)動(dòng)態(tài)生成script標(biāo)簽,也沒有發(fā)現(xiàn)類似jQuery191011762070982318096_1487035510995這樣的函數(shù)。(可能是我沒有發(fā)現(xiàn)而已)請(qǐng)教jQuery是怎樣動(dòng)態(tài)聲明callback函數(shù)的,怎樣下載script文件的?感謝回答?。?
3 回答

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
a.js
function callback(data){ alert(data); }
b.js
callback({name:'Li', age:13});
你自己已經(jīng)解答的差不多了,如果我就把這兩個(gè)文件順序用script標(biāo)簽引入,會(huì)alert出傳入callback的實(shí)參。
如果先聲明了callback函數(shù),然后將b.js以動(dòng)態(tài)script標(biāo)簽引入,因?yàn)閟cript的src引入js不受同源限制,所以我們可以請(qǐng)求其他服務(wù)器上的文件,其他服務(wù)器上可以根據(jù)script中的參數(shù)動(dòng)態(tài)生成類似于b.js的文件,傳到客戶端自然會(huì)執(zhí)行。
jsonp跟ajax沒任何關(guān)系,jQuery只不過把他們封裝在了一起,你說xhr,應(yīng)該使用的是cors跨域。
兩點(diǎn): json是良好的數(shù)據(jù)傳輸形式, script標(biāo)簽引入文件不受同源限制
- 3 回答
- 0 關(guān)注
- 824 瀏覽
添加回答
舉報(bào)
0/150
提交
取消