前几天,打算用spring boot + vue 前后端分离开发,但是却发现前端调用接口数据 出现跨域问题,下面是解决问题的办法,如果是使用的是spring security 可以在如下关闭cors,和csrf
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
http
.cors()
.and()
.csrf().disable();
http.headers().frameOptions().sameOrigin();
}
然后创建个CorsConfig 配置文件如下:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600);
}
}
这样就能解决跨域问题,100%可行。
总结跨域可以通过前端代理来解决,但是前端不能100%处理后端跨域的问题。