在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ jsonp為何只能是get方法?

jsonp為何只能是get方法?

看了幾篇文章,也沒(méi)有搞懂,請(qǐng)解釋一下?
最好的解釋在這里
https://segmentfault.com/q/10...

問(wèn)題演變成
<script>標(biāo)簽,只支持GET ?
我繼續(xù)問(wèn),

為何
<script>標(biāo)簽,只支持GET ?

回答
編輯回答
傻叼

jsonp 的出現(xiàn)

簡(jiǎn)介

因?yàn)闉g覽器同源策略的限制,XHR 1.0(XMLHttpRequests) 并不能對(duì)非當(dāng)前域的網(wǎng)頁(yè)發(fā)起ajax請(qǐng)求,原則上是為了安全考慮。

jsonp 其實(shí)就是利用了瀏覽器對(duì)部分標(biāo)簽沒(méi)有進(jìn)行同源策略限制的原理,通常是在本地先創(chuàng)建function 放在window下,然后 通過(guò)創(chuàng)建標(biāo)簽的形式來(lái)載入js 并自動(dòng)執(zhí)行。然而這個(gè)叫載入的過(guò)程 其實(shí)只是有瀏覽器發(fā)起了一個(gè)js腳本的加載。然后并執(zhí)行。
從另一個(gè)角度來(lái)源 加載不可信來(lái)源的JS 也會(huì)有風(fēng)險(xiǎn)

代替方案

實(shí)現(xiàn)跨域請(qǐng)求的解決方案有很多,比如早期的iframe等... 想要了解更多的 可以 B站搜索 燕十八 其中一期 遠(yuǎn)古時(shí)代的ajax

新時(shí)代的跨域

XHR 2.0

XHR 2.0 中,引入了一個(gè)新的方式來(lái)處理跨域,就是對(duì)方允許你進(jìn)行跨域請(qǐng)求,在瀏覽器發(fā)起跨域請(qǐng)求時(shí) 會(huì)先發(fā)起一個(gè) options 請(qǐng)求,來(lái)檢查發(fā)起請(qǐng)求的一方是否符合準(zhǔn)入條件,如果滿足,就允許請(qǐng)求發(fā)起真正的請(qǐng)求,如果不允許 請(qǐng)求成功后 數(shù)據(jù)也會(huì)被切斷。

反向代理

其實(shí)跨域從產(chǎn)生之初就有一個(gè)解決方案,那就是在本地建立一個(gè)反向代理服務(wù)器,對(duì)目標(biāo)進(jìn)行請(qǐng)求,這樣就不存在跨域了。

2017年3月3日 04:06
編輯回答
默念

因?yàn)閟cript就是頁(yè)面獲取腳本并執(zhí)行啊,你見(jiàn)過(guò)瀏覽器加載文件用別的方法的嗎,post是用來(lái)向服務(wù)器發(fā)送數(shù)據(jù)的。

還有,現(xiàn)在已經(jīng)沒(méi)有使用jsonp的必要了,其他方法不能跨域的jsonp一樣不能跨,其他方法要修改服務(wù)器端的jsonp一樣要修改,用點(diǎn)更現(xiàn)代的方法吧。

2017年9月27日 19:26
編輯回答
舊螢火

說(shuō)反了,不是JSONP只能用GET,而是JSONP利用的是script標(biāo)簽未對(duì)src內(nèi)容做跨域檢查的這個(gè)“bug”;而使用src去加載,就必然是GET請(qǐng)求。

2017年7月11日 23:46