怎么解決前后端跨域?SpringBoot這幾種方式可以解決

解決跨域請求的幾種方式:
前提: 跨域異常是發(fā)生在前端的, 同源策略相關(guān);
- 前端通過Ajax配置數(shù)據(jù)類型為 JSONP , 發(fā)送一個(gè)callback默認(rèn)的隨機(jī)值 , 作為秘鑰傳到后端 , 后端再次以JSONPObject將這個(gè)秘鑰值返給前端 作為標(biāo)識(相當(dāng)于握手)
弊端: 只支持get請求 , 前后端都需要寫響應(yīng)代碼 , 存在耦合
2.某一個(gè)接口需要跨域, 可使用注解 @CrossOrigin("http://xxxx:port") 在controller 接口方法上
3.批量支持某一批接口跨域
通過配置類 implements WebMvcConfigurer 實(shí)現(xiàn) addCordMappings 方法配置 CorsRegistry
4.支持所有的接口跨域
配置中配置一個(gè)過濾器 方法 : CorsFilter 過濾器
CORS弊端: 也需要瀏覽器支持, 有時(shí)會出現(xiàn)option, 需要瀏覽器版本支持 (IE10以上)
5.Nginx 配置 (通過反向代理的方式 , 推薦)
優(yōu)點(diǎn): 不需要在前端和后端寫相關(guān)配置代碼
標(biāo)簽: