Spring Boot如何通過CORS處理跨域問題
跨域的產(chǎn)生就是因為瀏覽器的同源策略。它是瀏覽器的核心安全功能,所謂的同源,就是指域名,協(xié)議,還有端口要相同。傳統(tǒng)的方案就是JSONP(前端處理方案),但是JSONP有很大的局限性,就是只支持GET請求,所以不能滿足我們的需求,而CORS(Cross-origin-resource sharing)跨域資源共享,就可以解決這個問題。他是一個瀏覽器規(guī)范,一個w3c標準,提供web服務從不同網(wǎng)域傳來的沙盒腳本的方法,避開了瀏覽器的同源策略。
CORS是后端的一種處理的方案,在Spring中可以配置解決跨域,在Spring Boot中它的配置變得很簡單,只需要在你controller方法上加一個注解@CrossOrigin(origins="你的請求地址")就好了。
跨域資源共享(CORS) 是一種機制,它使用額外的 HTTP 頭來告訴瀏覽器 讓運行在一個 origin (domain) 上的Web應用被準許訪問來自不同源服務器上的指定的資源。當一個資源從與該資源本身所在的服務器不同的域、協(xié)議或端口請求一個資源時,資源會發(fā)起一個跨域 HTTP 請求。
比如,站點 http://domain-a.com 的某 HTML 頁面通過 <img> 的 src 請求 http://domain-b.com/image.jpg。網(wǎng)絡上的許多頁面都會加載來自不同域的CSS樣式表,圖像和腳本等資源。
出于安全原因,瀏覽器限制從腳本內(nèi)發(fā)起的跨源HTTP請求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 這意味著使用這些API的Web應用程序只能從加載應用程序的同一個域請求HTTP資源,除非響應報文包含了正確CORS響應頭。
如果方法百十來個,那這種的就不適用,因此可以做一個全局配置,統(tǒng)一處理
@Configuration //ctrl+o找一下這個方法 public class WebMVcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("**").allowedOrigins("http://localhost:8081") .allowedHeaders("*") .allowedMethods("*") .maxAge(30*1000); } }
后端代碼處理的話就是這樣,但是還有其他方法,例如nginx,例如node.js,都可以處理,但是這兩個第三方工具的用處很多,如果僅僅局限在處理跨域,那就有點大材小用。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- vue+springboot實現(xiàn)項目的CORS跨域請求
- 詳解springboot設置cors跨域請求的兩種方式
- Spring boot 和Vue開發(fā)中CORS跨域問題解決
- Springboot處理CORS跨域請求的三種方法
- 基于SpringBoot解決CORS跨域的問題(@CrossOrigin)
- 詳解springboot解決CORS跨域的三種方式
- Springboot處理配置CORS跨域請求時碰到的坑
- Springboot跨域CORS處理實現(xiàn)原理
- SpringBoot跨域Jsonp和Cors的方法
- springboot跨域CORS處理代碼解析
- SpringBoot使用CORS實現(xiàn)無縫跨域的方法實現(xiàn)
相關文章
淺談關于Mybatis的mapper-locations配置問題
MyBatis 是一款優(yōu)秀的半自動的ORM持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數(shù)和獲取結果集的工作,需要的朋友可以參考下2023-05-05Java swing實現(xiàn)酒店管理系統(tǒng)
這篇文章主要為大家詳細介紹了Java swing實現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02rabbitmq basicReject/basicNack/basicRecover的區(qū)別及說明
這篇文章主要介紹了rabbitmq basicReject/basicNack/basicRecover的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01使用SpringBoot項目導入openfeign版本的問題
這篇文章主要介紹了使用SpringBoot項目導入openfeign版本的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03