跨域問題的梳理

2021-10-04 18:17:16 字數 1082 閱讀 6866

前兩天面試問到了跨域問題,答得不是很好,所以總結一下跨域問題。

由以下三個條件同時滿足時,才會產生跨域問題。

瀏覽器處於安全的考慮會對請求做校驗,校驗不通過就會報跨域的問題。

請求的位址和本域的協議、網域名稱、埠有乙個不一致就為跨域。

發出去的請求為xhr請求。像、css、js等請求不會產生跨域問題,就是因為他們的請求不是xhr格式的。

(-user-data-dir= e:\forbidden-check 表示瀏覽器禁止安全檢查的臨時存放資料目錄)

不建議這樣設定,而且也沒法讓所有使用者都這樣設定。

jsonp是在客戶端生成標籤,傳送type為script格式的請求,這樣就不會產生跨域問題。

不建議這樣使用,因為要修改服務端**。

在響應頭中新增以下內容:

access-control-allow-origin:*

access-control-allow-methods: post, get, options

access-control-allow-headers: x-pingother

access-control-max-age:3600

access-control-allow-credentials:true

不建議這樣設定,因為需要修改被呼叫方的配置,如果就是想抓取別人**上的資料,那就沒法讓被呼叫方修改。

請求本域的位址,然後通過反向**請求別人的介面,這樣可以解決跨域的問題。

在nginx中通過proxy_pass 來反向**請求別人的介面。

跨域的問題

傳統的jsonp跨域方法 jq的ajax呼叫是最常見的呼叫方法之一,在自己寫一些小demo過程中,總是會遇到跨域問題,一般遇到跨域問題時,就會出現類似錯誤情況 no access control allow origin header is present on the requested reso...

cookie跨域問題 跨域登入

cookie跨域時修改不成功,需要在刪除 或者修改時 設定domain值與存入的domain一致,跨域修改cookie不會成功。例如 login.abc.com login工程 www.abc.com abc工程 www.abc.com login.html呼叫login工程的登陸介面 login工...

跨域問題詳解 ajax跨域解決

跨域問題的產出,根本原因在於瀏覽器的同源策略,什麼又是同源策略呢,官方解釋 同源策略限制了從同乙個源載入的文件或指令碼如何與來自另乙個源的資源進行互動。這是乙個用於隔離潛在惡意檔案的重要安全機制。同源的定義 如果兩個頁面的協議,埠 如果有指定 和網域名稱都相同,則兩個頁面具有相同的源。可以跨域讀取其...