前後端分離專案跨域問題分析及解決思路

2021-09-10 08:15:04 字數 662 閱讀 9520

瀏覽器的同源策略限制預設情況下前端頁面和後端服務在不同伺服器(網域名稱、埠不一樣)時,前端頁面js無法請求到後端介面服務,即存在跨域問題。

跨域問題解決思路

使用jsonp方式解決

使用cors解決

使用nginx**解決

這裡不討論jsonp的方式,主要討論cors和**方式。

response.setheader("access-control-allow-origin", "*");

response.setheader("access-control-allow-headers", "origin, x-requested-with, content-type, accept");

return "crossorigin請求";

}那麼服務端即允許介面被跨域訪問,不同源的前端頁面也就可以呼叫該介面。

當然,這裡只是單獨設定了乙個介面的響應頭,實際專案中可以根據需要選擇不同的設定方式,例如:

​​​​​​使用spring的註解@crossorigin

自定義***,對每個請求的response header進行設定

spring自帶的cors標籤進行xml設定

web.xml中通過filter設定

我更喜歡自定義***的方式對response header設定,允許介面跨域請求。

前後端專案分離 跨域問題

1.跨域 說明最少有兩個域,才會出現跨的這種情況 2.跨域問題出現的本質 a.網域名稱不同,b.埠號不同,c.協議 不同 3,瀏覽器的同源策略 非位址列請求 如a頁面在a服 務器,b頁面在b伺服器,在a頁面請求b頁面的資訊就會出現跨域問題,目的是為了保證使用者資訊保安 如果a頁面可以獲取b頁面資訊,...

前後端分離跨域問題

access to xmlhttprequest at localhost 8081 user gettoken?username hyly password hyly from origin http localhost 63342 has been blocked by cors policy ...

前後端分離跨域問題

public class loginhandlerinterceptor implements handlerinterceptor response.sendredirect request.getcontextpath login.html catch ioexception e return ...