前后端分離跨域springBoot跨域有效解決問題
前后端分離跨域springBoot跨域有效解決
之前一直聽過跨域這個(gè)詞,以前的項(xiàng)目也有跨域需要處理,但是自己未參與也未曾看過別人是怎么解決的。
最近有個(gè)前后端完全分離項(xiàng)目, 需要解決一下跨域問題;解決完了就簡(jiǎn)單在此記錄一下
同源策略
請(qǐng)求的url地址,必須與瀏覽器上的url地址處于同域上,也就是域名,端口,協(xié)議相同.
比如:我在前端頁面上的域名是3000端口,請(qǐng)求后臺(tái)項(xiàng)目端口為8000的域名
這個(gè)時(shí)候在瀏覽器上會(huì)報(bào)錯(cuò):
這樣后臺(tái)肯定是進(jìn)不去,所以直接上代碼。
以下是springboot解決方案
import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class MyConfiguration { @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 設(shè)置域名你要允許的網(wǎng)站,如果全允許則設(shè)為 * //config.addAllowedOrigin("http://127.0.0.1:3000"); config.addAllowedOrigin("*"); // 如果要限制 HEADER 或 METHOD 請(qǐng)自行更改 config.addAllowedHeader("x-requested-with,content-type,requesttype"); config.addAllowedMethod("*"); source.registerCorsConfiguration("/**", config); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); // 這個(gè)順序很重要哦,為避免麻煩請(qǐng)?jiān)O(shè)置在最前 bean.setOrder(0); return bean; } }
頁面ajax正常請(qǐng)求就可以訪問了
url示例:
http://127.0.0.1:80/person/checkStatusPerson
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java.lang.Runtime.exec() Payload知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于java.lang.Runtime.exec() Payload知識(shí)點(diǎn)相關(guān)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2020-03-03Java?SpringBoot?獲取接口實(shí)現(xiàn)類匯總
這篇文章主要介紹了Java?SpringBoot?獲取接口實(shí)現(xiàn)類匯總,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09idea插件之mybatis log plugin控制臺(tái)sql的問題
這篇文章主要介紹了idea插件之mybatis log plugin控制臺(tái)sql,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Java編程實(shí)現(xiàn)beta分布的采樣或抽樣實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)beta分布的采樣或抽樣實(shí)例,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Java中ConcurrentHashMap是如何實(shí)現(xiàn)線程安全
ConcurrentHashMap是一個(gè)哈希表,支持檢索的全并發(fā)和更新的高預(yù)期并發(fā)。本文主要介紹了Java中ConcurrentHashMap是如何實(shí)現(xiàn)線程安全,感興趣的可以了解一下2021-11-11Spring Boot實(shí)現(xiàn)郵件服務(wù)(附:常見郵箱的配置)
這篇文章主要給大家介紹了關(guān)于Spring Boot實(shí)現(xiàn)郵件服務(wù)的相關(guān)資料,文中還附上了常見郵箱的配置,通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12