CORS跨域和同源策略

2021-09-29 18:11:43 字數 1498 閱讀 1112

同源策略

先來說說什麼是源

• 源(origin)就是協議、網域名稱和埠號。

以上url中的源就是:

若位址裡面的協議、網域名稱和埠號均相同則屬於同源。

以下是相對於 的同源檢測

• ----成功

• ----失敗,網域名稱不同

• ----失敗,協議不同

• ----失敗,埠號不同

2.什麼是同源策略?

同源策略是瀏覽器的乙個安全功能,不同源的客戶端指令碼在沒有明確授權的情況下,不能讀寫對方資源。所以a.com下的js指令碼採用ajax讀取b.com裡面的檔案資料是會報錯的。

cors跨域

cors跨域請求錯誤

跨域請求

當瀏覽器發起請求時,如果源請求頁面位址被請求位址不是同源位址,那麼這個請求就是跨域請求

cors跨域請求限制

瀏覽器在發起ajax跨域請求時,缺省會有cors跨域請求限制

origin: 源請求位址access-control-allow-origin: 源請求位址
瀏覽器在收到響應時,如果發現響應頭中沒有access-control-allow-origin響應頭,瀏覽器會直接將請求駁回,產生cors跨域請求限制。

cors跨域請求設定

專案中前端伺服器與後端伺服器分處不同的網域名稱,需要為後端伺服器新增跨域訪問的支援。

django專案中可以使用django-cors-headers擴充套件進行跨域請求設定。

安裝

pip install django-cors-headers
註冊(

...'corsheaders',.

..)註冊中介軟體

middleware =

[# 注意:此中介軟體新增到中介軟體的第乙個

'corsheaders.middleware.corsmiddleware',...]

新增跨域請求白名單

# cors跨域請求設定

cors_origin_whitelist =

('',)

# 允許攜帶cookie

cors_allow_credentials =

true

# 允許所有源訪問

# 如果不需要允許全部,可以設定cors_origin_whitelist=()引數,將需要訪問的網域名稱新增即可

# cors_origin_allow_all = true

總結

cors請求擴充套件包

設定跨域請求白名單

同源策略和跨域

url由三部分組成 資源型別 存放資源的主機網域名稱 資源檔名。也可認為由4部分組成 協議 主機 埠 路徑 url的一般語法格式為 帶方括號的為可選項 protocol hostname port path parameters query fragment protocol 協議 指定使用的傳輸協...

,同源策略和跨域

當前頁面的url 和目標請求的url不一樣 是瀏覽器的一種安全策略 所謂同源就是同乙個源頭。官方同源 協議 埠號 網域名稱必須完全相同 違背同源策略就是跨域 當前頁面的url 和目標請求的url不一樣 jsonp,jsonp是非官方的跨域解決方案,只支援get請求。它借助script標籤的跨域能力來...

跨域 同源策略

為了保護智財權,不然你做的介面別人 都隨便用了 是瀏覽器拒絕的 一般有三種方法,哪三種方法呢?是下面三種方法 function handledata data 把callback handledata發給伺服器,伺服器拿到handledataconst http callback就是 後面的fn,因...