1. 同源策略是瀏覽器處于安全考慮,為通信設(shè)置了“相同的域、相同的端口、相同的協(xié)議”這一限制。這讓我們的ajax請(qǐng)求存在跨域無(wú)權(quán)限訪(fǎng)問(wèn)的問(wèn)題。

  2. 同時(shí)我們發(fā)現(xiàn)script標(biāo)簽引入腳本的行為并不受同源策略的限制,但是script引入的文件會(huì)被立即執(zhí)行,如果其內(nèi)容不符合js語(yǔ)法,則會(huì)報(bào)錯(cuò);

操作原理

針對(duì)以上情況,誕生了jsonp:

  1. 利用script標(biāo)簽的src屬性來(lái)請(qǐng)求接口,并向接口傳遞一個(gè)回調(diào)函數(shù)(克服了同源問(wèn)題)

  2. 接口將數(shù)據(jù)以回調(diào)函數(shù)參數(shù)的形式同回調(diào)函數(shù)一同傳回;此時(shí)傳回則是這樣形式的一個(gè)字符串:回調(diào)函數(shù)名(數(shù)據(jù)),這樣就符合js語(yǔ)法了(克服了script標(biāo)簽引入內(nèi)容非js報(bào)錯(cuò)的問(wèn)題)

實(shí)例操作

紙上得來(lái)總覺(jué)淺,絕知此事要躬行。jsonp的原理我早就倒背入流了,但是看著覺(jué)得明白,但總覺(jué)得少了點(diǎn)什么沒(méi)抓住。所以,實(shí)際操刀試試吧。點(diǎn)擊下載源碼

下載代碼后,進(jìn)入some-code/jsonp-demo文件夾,該文件夾的目錄為:

app.js

package.json

views

    延伸閱讀

    學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式