同源策略
先來說說什麼是源
• 源(origin)就是協議、網域名稱和埠號。
以上url中的源就是:
若位址裡面的協議、網域名稱和埠號均相同則屬於同源。
以下是相對於 的同源檢測
• ----成功
• ----失敗,網域名稱不同
• ----失敗,協議不同
• ----失敗,埠號不同
2.什麼是同源策略?
同源策略是瀏覽器的乙個安全功能,不同源的客戶端指令碼在沒有明確授權的情況下,不能讀寫對方資源。所以a.com下的js指令碼採用ajax讀取b.com裡面的檔案資料是會報錯的。
cors跨域
cors跨域請求錯誤
跨域請求
當瀏覽器發起請求時,如果源請求頁面位址
和被請求位址
不是同源位址,那麼這個請求就是跨域請求。
cors跨域請求限制
瀏覽器在發起ajax跨域請求時,缺省會有cors跨域請求限制。
瀏覽器在收到響應時,如果發現響應頭中沒有access-control-allow-origin響應頭,瀏覽器會直接將請求駁回,產生cors跨域請求限制。origin: 源請求位址
access-control-allow-origin: 源請求位址
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,因...