App下載

為什么會出現跨域,有什么常見的解決方案?

深淵的那支花 2021-12-15 12:01:28 瀏覽數 (2317)
反饋

跨域

瀏覽器同源策略 1995年,同源政策由 Netscape 公司引入瀏覽器。目前,所有瀏覽器都實行

這個政策。 最初,它的含義是指,A網頁設置的 Cookie,B網頁不能打開,除非這兩個網

頁"同源"。所謂"同源"指的是"三個相同"。

協議相同 http https
域名相同 www.xdclass.net
端口相同 80 81
一句話:瀏覽器從一個域名的網頁去請求另一個域名的資源時,域名、端口、協議任一不同,都是跨域
瀏覽器控制臺跨域提示:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.

解決方法

  • JSONP
  • 頁面這層再包裝一層服務,目前最多就是nodejs
  • Http響應頭配置允許跨域

        nginx代理服務器

        后端程序代碼配置

程序代碼中處理 SpringBoot 通過攔截器配置
//表示接受任意域名的請求,也可以指定域名
response.setHeader("Access-Control-Allow-Origin",
request.getHeader("origin"));
//該字段可選,是個布爾值,表示是否可以攜帶cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST,
PUT, PATCH, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "*");


0 人點贊