最近在做一個前后端分離的項目, 前端用的是Vue后端使用的是springboot, 在項目整合的時候發現前端調用后端接口報錯403跨域請求問題
前端跨域請求已解決, 那么問題就出在后端了, 找了一些資料找到了很多種方法, 這里說兩個簡單粗暴的.
注意:“@CrossOrigin“注解要求jdk1.8及以上版本, SpringMVC 4.2及以上版本
1. 在controller層上添加@Configuration注解, 如果沒有效果請指定RequestMapping中的method類型在試一下.(此注解也可以加在方法上)
@RestController
public class Demo { @Configuration @RequestMapping("test) public String test() { // 這里是代碼 } }
@Configuration
@RestController public class Demo { @RequestMapping("test) public String test() { // 這里是代碼 } }
2. 上面的方法解決的是部分功能的跨域問題, 有的時候我們需要全局跨域, 那么可以配置一個config類, 新建一個java文件, 代碼如下
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @SuppressWarnings("deprecation") @Configuration public class MyConfiguration { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } }; } }
OK, 問題解決