成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

同源策略和跨域方法

魏憲會(huì) / 1745人閱讀

摘要:同源策略的控制者是瀏覽器,瀏覽器可以控制不同域之間的資源的訪問或相互操作,但不控制自己對(duì)不同域之間的資源的操作和訪問。

同源與跨域

一般情況下,禁止一個(gè)域從另一個(gè)域讀取數(shù)據(jù),卻可以使用某些從其他域拿到的資源。比如說,允許一個(gè)域執(zhí)行、渲染、應(yīng)用從其他域獲取到的腳本、圖片、樣式;同樣,一個(gè)域可以展示從其他域獲取的內(nèi)容,比如在frame中顯示html文檔。網(wǎng)絡(luò)資源也可以選擇性的讓其他域來讀取自己的信息,比如使用Cross-Origin Resource Sharing,這種情況下訪問權(quán)是針對(duì)單個(gè)域授權(quán)的。同源策略的控制者是瀏覽器,瀏覽器可以控制不同域之間的資源的訪問或相互操作,但不控制自己對(duì)不同域之間的資源的操作和訪問。

同源策略

源:由協(xié)議【https、http】+域名【a.com】+端口【80、443】組成,(ie中略有不同),同源策略是瀏覽器的核心安全策略,目的是將來自不同源的資源進(jìn)行隔離,并控制不同源資源間的通信,從而減少安全威脅,增強(qiáng)安全性。

跨域中的一些限制以及不限制內(nèi)容如下:

不限制內(nèi)容:

腳本文件 js

圖片資源

樣式資源css

iframe展示其他的的資源

a鏈接訪問其他資源

多媒體等資源

form表單提交

限制內(nèi)容:

跨域的方法【get、post可以】

跨域請(qǐng)求頭不可以添加自定義頭部

本地文件系統(tǒng)讀寫

iframe可以訪問iframe整體,不能訪問內(nèi)容

cookie的限制,使用CORS需要withCredentials=true才可以帶上cookie

跨域方法

使用反向代理,避免跨域,通過后端來完成跨域部分

JSONP方式,利用js文件的跨域允許,并且js文件請(qǐng)求到了,就會(huì)執(zhí)行該js腳本,如此可以在前端定義好function callback(data){};這樣去請(qǐng)求后端的js文件,文件的內(nèi)容包括了需要的數(shù)據(jù),但是返回的是一個(gè)函數(shù)callback(data);這樣就會(huì)調(diào)用前端腳本寫好的callback方法,把data當(dāng)做參數(shù)使用

CORS(Cross Origin Resource Sharing),通過協(xié)商HTTP Header讓瀏覽器和服務(wù)端進(jìn)行通信,來決定請(qǐng)求或者響應(yīng)是否有效,默認(rèn)情況下,瀏覽器發(fā)送跨域請(qǐng)求不帶認(rèn)證信息(比如cookie,證書,代理認(rèn)證信息等),withCredentials屬性值為false,后端響應(yīng)設(shè)置Access-Control-Allow-Origin允許該域,或者為*,如果需要cookie認(rèn)證信息跨域需要withCredentials=true,同時(shí)服務(wù)端允許Access-Control-Allow-Credentials:true,同時(shí)Access-Control-Allow-Origin 值不能為*;使用CORS瀏覽器將CORS請(qǐng)求分成兩類:簡(jiǎn)單請(qǐng)求(simple request)和非簡(jiǎn)單請(qǐng)求(not-so-simple request),只要同時(shí)滿足以下兩大條件,就屬于簡(jiǎn)單請(qǐng)求。
1) 請(qǐng)求方法是以下三種方法之一:
HEAD
GET
POST
(2)HTTP的頭信息不超出以下幾種字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三個(gè)值application/x-www-form-urlencoded、multipart/form-data、text/plain

對(duì)于非簡(jiǎn)單請(qǐng)求、會(huì)發(fā)起預(yù)檢請(qǐng)求Options來確認(rèn)是否允許跨域,這種方法老的瀏覽器不一定支持。fetch方法在移動(dòng)端使用較多,也可以配合CORS來完成跨域。

form表單提交,這樣可以提交數(shù)據(jù),但是進(jìn)行交互有點(diǎn)困難;

window.name + iframe的使用,可以使用iframe定義一個(gè)窗口window,通過后端或者頁面iframe的src頁面的js腳本配合,把數(shù)據(jù)放在這個(gè)window.name上,最大可以存儲(chǔ)2M的數(shù)據(jù),然后主域可以把這個(gè)iframe的src設(shè)置為何主域同域的中間頁,而此時(shí)iframe的window.name并不會(huì)變,這樣主頁就可以獲取該iframe的window.name來獲取數(shù)據(jù)。參考鏈接

document.domain可以完成兩個(gè)頂級(jí)域名下的子域名之間的通信

postMessage是H5中的window之間的通信方式。

WebSocket可以隨便玩

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/83995.html

相關(guān)文章

  • 同源策略跨域知識(shí)點(diǎn)學(xué)習(xí)

    摘要:同源策略在這之前需要先熟悉一下這個(gè)概念,同源指請(qǐng)求協(xié)議相同,主機(jī)名相同,端口相同,涉及安全的策略。同源策略主要限制的是不同源之間的交互操作,對(duì)于跨域內(nèi)嵌的資源不受該策略限制。 問題起因是在使用weibo api的時(shí)候,發(fā)現(xiàn)有一個(gè)報(bào)錯(cuò)。weibo api是https協(xié)議,我本地是模擬的回調(diào)域名,然后進(jìn)行數(shù)據(jù)通信,本地http協(xié)議,于是乎就報(bào)錯(cuò)了。出于對(duì)postMessage的不是很熟悉,...

    baiy 評(píng)論0 收藏0
  • 同源策略跨域

    摘要:一些技術(shù)都默認(rèn)采取了同源策略,這些技術(shù)范圍包括但不限于。但是相比較以上的各種場(chǎng)景和繞過同源策略的方法,的跨域請(qǐng)求設(shè)置很容易,只需要在目標(biāo)服務(wù)的根目錄下 在前端開發(fā)的過程中,我們經(jīng)常遇到跨域的問題,以下的文章將列舉一下我在工作中碰到的跨域問題。以及稍稍的探討一下為什么會(huì)有跨域問題的出現(xiàn),和所謂的同源策略 同源策略 1. 歷史 1995 年由 Netscape 公司提出,之后被其他瀏覽器廠...

    Achilles 評(píng)論0 收藏0
  • 同源策略跨域

    摘要:一些技術(shù)都默認(rèn)采取了同源策略,這些技術(shù)范圍包括但不限于。但是相比較以上的各種場(chǎng)景和繞過同源策略的方法,的跨域請(qǐng)求設(shè)置很容易,只需要在目標(biāo)服務(wù)的根目錄下 在前端開發(fā)的過程中,我們經(jīng)常遇到跨域的問題,以下的文章將列舉一下我在工作中碰到的跨域問題。以及稍稍的探討一下為什么會(huì)有跨域問題的出現(xiàn),和所謂的同源策略 同源策略 1. 歷史 1995 年由 Netscape 公司提出,之后被其他瀏覽器廠...

    ideaa 評(píng)論0 收藏0
  • 同源策略跨域

    摘要:一些技術(shù)都默認(rèn)采取了同源策略,這些技術(shù)范圍包括但不限于。但是相比較以上的各種場(chǎng)景和繞過同源策略的方法,的跨域請(qǐng)求設(shè)置很容易,只需要在目標(biāo)服務(wù)的根目錄下 在前端開發(fā)的過程中,我們經(jīng)常遇到跨域的問題,以下的文章將列舉一下我在工作中碰到的跨域問題。以及稍稍的探討一下為什么會(huì)有跨域問題的出現(xiàn),和所謂的同源策略 同源策略 1. 歷史 1995 年由 Netscape 公司提出,之后被其他瀏覽器廠...

    Seay 評(píng)論0 收藏0
  • 跨域跨域請(qǐng)求的方法

    摘要:存在跨域的情況網(wǎng)絡(luò)協(xié)議不同,如協(xié)議訪問協(xié)議。域名和域名對(duì)應(yīng)如訪問跨域請(qǐng)求資源的方法代理定義和用法代理用于將請(qǐng)求發(fā)送給后臺(tái)服務(wù)器,通過服務(wù)器來發(fā)送請(qǐng)求,然后將請(qǐng)求的結(jié)果傳遞給前端。定義和用法是現(xiàn)代瀏覽器支持跨域資源請(qǐng)求的一種最常用的方式。 1、什么是跨域? 由于瀏覽器同源策略,凡是發(fā)送請(qǐng)求url的協(xié)議、域名、端口三者之間任意一與當(dāng)前頁面地址不同即為跨域。存在跨域的情況: 網(wǎng)絡(luò)協(xié)議不同,...

    wwq0327 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<