解決跨域問題的三種方法

2021-08-30 08:32:35 字數 665 閱讀 6656

1.什麼是跨域

跨域是指跨網域名稱的訪問,以下情況都屬於跨域:

跨域原因說明 示例

網域名稱不同 www.jd.com 與 www.taobao.com

網域名稱相同,埠不同 www.jd.com:8080 與 www.jd.com:8081

二級網域名稱不同 item.jd.com 與 miaosha.jd.com

如果網域名稱和埠都相同,但是請求路徑不同,不屬於跨域,如:

2.為什麼有跨域問題?

跨域不一定會有跨域問題。

因為跨域問題是瀏覽器對於ajax請求的一種安全限制:乙個頁面發起的ajax請求,只能是於當前頁同網域名稱的路徑,這能有效的阻止跨站攻擊。

因此:跨域問題 是針對ajax的一種限制。

但是這卻給我們的開發帶來了不變,而且在實際生成環境中,肯定會有很多臺伺服器之間互動,位址和埠都可能不同,怎麼辦?

3.解決跨域問題的方案

目前比較常用的跨域解決方案有3種:

nginx反向**

思路是:利用nginx反向**把跨域為不跨域,支援各種請求方式

缺點:需要在nginx進行額外配置,語義不清晰

cors

規範化的跨域請求解決方案,安全可靠。

優勢:

伺服器端解決跨域問題的三種方法

跨域是指html檔案所在的伺服器與ajax請求的伺服器是不同的ip port,例如 192.168.1.1 8080 與 192.168.1.2 8080 是不同的域。192.168.1.1 8080 與 192.168.1.1 8081 是不同的域。如果您使用的mvc框架是spring4.2以上的...

伺服器端解決跨域問題的三種方法

跨域是指html檔案所在的伺服器與ajax請求的伺服器是不同的ip port,例如 192.168.1.1 8080 與 192.168.1.2 8080 是不同的域。192.168.1.1 8080 與 192.168.1.1 8081 是不同的域。如果您使用的mvc框架是spring4.2以上的...

伺服器端解決跨域問題的三種方法

跨域是指html檔案所在的伺服器與ajax請求的伺服器是不同的ip port,例如 192.168.1.1 8080 與 192.168.1.2 8080 是不同的域。192.168.1.1 8080 與 192.168.1.1 8081 是不同的域。如果您使用的mvc框架是spring4.2以上的...