jQuery的$.ajax跨域時發出的請求類型是xhr,并不是script,也沒有發現動態生成script標簽,也沒有發現類似jQuery191011762070982318096_1487035510995這樣的函數。(可能是我沒有發現而已)請教jQuery是怎樣動態聲明callback函數的,怎樣下載script文件的?感謝回答?。?
3 回答

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