SpringBoot的跨域注解@CrossOrigin解析
方法一
(此方法maven install需jdk1.8版本+):
Spring Framework 4.2 GA為CORS提供了第一類支持,使您比通常的基于過濾器的解決方案更容易和更強大地配置它。所以springMVC的版本要在4.2或以上版本才支持@CrossOrigin ;
springBoot跨域注解 : @CrossOrigin
在controller控制類上方加注解;
spring注解@CrossOrigin不起作用的原因
1、是springMVC的版本要在4.2或以上版本才支持@CrossOrigin
2、非@CrossOrigin沒有解決跨域請求問題,而是不正確的請求導致無法得到預期的響應,導致瀏覽器端提示跨域問題。
3、在Controller注解上方添加@CrossOrigin注解后,仍然出現(xiàn)跨域問題,解決方案之一就是:
在@RequestMapping注解中沒有指定Get、Post方式,具體指定后,問題解決。
類似代碼如下:
方法二
(配置類方法):
package org.richinfo.se_service_assistant.common; 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; /** * 配置類,允許接口跨域訪問 * @author syw * */ @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); //允許任何域名 corsConfiguration.addAllowedHeader("*"); //允許任何頭 corsConfiguration.addAllowedMethod("*"); //允許任何方法 return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); //注冊 return new CorsFilter(source); } }
跨域測試方法
自己測試跨域的時候一致都是寫一個單獨的項目,用不同的端口運行起來調(diào)自己項目中的接口,這樣比較麻煩
有一種簡單的方法,打開瀏覽器的調(diào)試模式,在console下輸入js代碼即可
輸入以下js代碼:
沒有token驗證的可以去掉token設置
var token= "LtSFVqKxvpS1nPARxS2lpUs2Q2IpGstidMrS8zMhNV3rT7RKnhLN6d2FFirkVEzVIeexgEHgI/PtnynGqjZlyGkJa4+zYIXxtDMoK/N+AB6wtsskYXereH3AR8kWErwIRvx+UOFveH3dgmdw1347SYjbL/ilGKX5xkoZCbfb1f0=,LZkg22zbNsUoHAgAUapeBn541X5OHUK7rLVNHsHWDM/BA4DCIP1f/3Bnu4GAElQU6cds/0fg9Li5cSPHe8pyhr1Ii/TNcUYxqHMf9bHyD6ugwOFTfvlmtp6RDopVrpG24RSjJbWy2kUOOjjk5uv6FUTmbrSTVoBEzAXYKZMM2m4=,R4QeD2psvrTr8tkBTjnnfUBw+YR4di+GToGjWYeR7qZk9hldUVLlZUsEEPWjtBpz+UURVmplIn5WM9Ge29ft5aS4oKDdPlIH8kWNIs9Y3r9TgH3MnSUTGrgayaNniY9Ji5wNZiZ9cE2CFzlxoyuZxOcSVfOxUw70ty0ukLVM/78="; var xhr = new XMLHttpRequest(); xhr.open(‘GET‘, ‘http://127.0.0.1:23802/word/selectHotWord?provinceId=100&sceneId=scene_025‘); xhr.setRequestHeader("x-access-token",token); xhr.send(null); xhr.onload = function(e) { var xhr = e.target; console.log(xhr.responseText); }
到此這篇關于SpringBoot的跨域注解@CrossOrigin解析的文章就介紹到這了,更多相關跨域注解@CrossOrigin內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot配置項目啟動后自動打開瀏覽器訪問項目方式
這篇文章主要介紹了springboot配置項目啟動后自動打開瀏覽器訪問項目方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01SpringBoot+mybatis+thymeleaf實現(xiàn)登錄功能示例
這篇文章主要介紹了SpringBoot+mybatis+thymeleaf實現(xiàn)登錄功能示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07springboot項目配置context path失效的問題解決
本文主要介紹了springboot項目配置context path失效的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04