跨域

題目1: 什么是同源策略

瀏覽器出于安全方面的考慮,只允許與本域下的接口交互。不同源的客戶端腳本在沒(méi)有明確授權(quán)的情況下,不能讀寫對(duì)方的資源。

題目2: 什么是跨域?跨域有幾種實(shí)現(xiàn)形式

同域:1.協(xié)議相同2域名相同3.端口相同
不滿足同域三個(gè)條件就叫跨域。
實(shí)現(xiàn)跨域的方式:
JSONP,缺點(diǎn)不安全只支持get請(qǐng)求.
CORS,兼容性,ie10以上才能用
降域,適用于同一個(gè)網(wǎng)站里多個(gè)子網(wǎng)站相互請(qǐng)求數(shù)據(jù),降到所有孩子用父親名,就變同域了
postmanager:相互發(fā)送消息,要不要隨你

題目3: JSONP 的原理是什么

先看例子:

<script src='http:/www.weather.com/weatherApi?hangzhou&callback'></script>
//返回?cái)?shù)據(jù)后是這種格式
<script>
callback({
    name:hanzhou,
    temperature:42
})
</script>
//我的js中定義了一個(gè)callback函數(shù)
<script>
function callback(){
//....
}
callback()
</script>//到這里就獲得了與我不同域的weather.com傳回來(lái)的數(shù)據(jù)并且可以使用

原理:利用頁(yè)面引用的js可以是不同域的文件這一特性。當(dāng)然也需要與服務(wù)器約好,服務(wù)器配合傳輸數(shù)據(jù)才能實(shí)現(xiàn)。
缺點(diǎn):有安全隱患,以為接受的數(shù)據(jù)是直接作為js運(yùn)行,萬(wàn)一服務(wù)器不懷好意傳輸惡意js代碼,那就玩完了,只支持get請(qǐng)求。

題目4: CORS是什么

cors有點(diǎn)像有名字有照片的專屬通行證。這個(gè)通行證誰(shuí)看?看門的(瀏覽器)瀏覽器發(fā)現(xiàn)網(wǎng)頁(yè)跨域請(qǐng)求后給你加個(gè)標(biāo)簽(請(qǐng)求頭),origin,服務(wù)器看到這個(gè)標(biāo)簽后會(huì)決定發(fā)不發(fā)通行證,通行證會(huì)有url,瀏覽器看這個(gè)通行證上地址跟你是不是同一人,是給你數(shù)據(jù),不是對(duì)不起不給,就不給。為什么要這樣做,看門的當(dāng)然是為了安全。

官方解釋: CORS 全稱是跨域資源共享(Cross-Origin Resource Sharing),是一種 ajax 跨域請(qǐng)求資源的方式,支持現(xiàn)代瀏覽器,IE支持10以上。 實(shí)現(xiàn)方式很簡(jiǎn)單,當(dāng)你使用 XMLHttpRequest 發(fā)送請(qǐng)求時(shí),瀏覽器發(fā)現(xiàn)該請(qǐng)求不符合同源策略,會(huì)給該請(qǐng)求加一個(gè)請(qǐng)求頭:Origin,后臺(tái)進(jìn)行一系列處理,如果確定接受請(qǐng)求則在返回結(jié)果中加入一個(gè)響應(yīng)頭:Access-Control-Allow-Origin; 瀏覽器判斷該相應(yīng)頭中是否包含 Origin 的值,如果有則瀏覽器會(huì)處理響應(yīng),我們就可以拿到響應(yīng)數(shù)據(jù),如果不包含瀏覽器直接駁回,這時(shí)我們無(wú)法拿到響應(yīng)數(shù)據(jù)。所以 CORS 的表象是讓你覺(jué)得它與同源的 ajax 請(qǐng)求沒(méi)啥區(qū)別,代碼完全一樣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言:對(duì)于跨域請(qǐng)求,很早之前就有去了解過(guò),但因?yàn)橐恢标P(guān)注的都是服務(wù)器后端開發(fā),故也就僅僅停留在概念的理解上而沒(méi)有機(jī)...
    ken_ljq閱讀 90,226評(píng)論 6 128
  • 歡迎關(guān)注微信公眾號(hào):全棧工廠 本文主要參考跨域資源共享 CORS 詳解[http://www.ruanyifeng...
    liqingbiubiu閱讀 2,051評(píng)論 0 3
  • 什么是同源策略 同源政策(same-origin policy)是指同域名(或ip),同端口,同協(xié)議視為同一個(gè)域,...
    小囧兔閱讀 685評(píng)論 0 1
  • 一、瀏覽器的同源策略 1.什么是同源? 所謂“同源”指的是”三個(gè)相同“。相同的域名、端口和協(xié)議,這三個(gè)相同的話就視...
    徐國(guó)軍_plus閱讀 926評(píng)論 1 3
  • 一杯濃的生普,繞不過(guò)去的苦,如期而至的醇。不知道從何時(shí)開始,它們已經(jīng)于我凝集成一種化不開的情愫。即便是伴隨著...
    蘸心向暖閱讀 432評(píng)論 0 0

友情鏈接更多精彩內(nèi)容