App下載

為什么會出現(xiàn)跨域,有什么常見的解決方案?

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

跨域

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

這個(gè)政策。 最初,它的含義是指,A網(wǎng)頁設(shè)置的 Cookie,B網(wǎng)頁不能打開,除非這兩個(gè)網(wǎng)

頁"同源"。所謂"同源"指的是"三個(gè)相同"。

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

解決方法

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

        nginx代理服務(wù)器

        后端程序代碼配置

程序代碼中處理 SpringBoot 通過攔截器配置
//表示接受任意域名的請求,也可以指定域名
response.setHeader("Access-Control-Allow-Origin",
request.getHeader("origin"));
//該字段可選,是個(gè)布爾值,表示是否可以攜帶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 人點(diǎn)贊