springboot处理跨域问题
处理跨域有很多方式,这里使用我自己最喜欢的一种配置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 不建议使用extends WebMvcConfigurationSupport,容易使用很多得配置失效和出问题
*
* @author yangbiao
* @date 2020/5/8
*/
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
/**
* 跨域配置
* ===实测如果过滤器抛出异常,那么就会导致跨域问题(也就是还没到这里来,也就没法处理到跨域)
*
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
/**
* 只允许指定前端服务地址跨域访问,需要使用公网IP或域名
* 注意是前端的服务地址http://ip:port,不要使用*(星号)配置允许所有域名/IP:port服务可以访问
* 而是需要指定的服务访问,这个更安全
*/
registry.addMapping("/**")
.allowedOrigins("http://localhost:80")
.allowedMethods("GET", "POST")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}
注意:
1.配置的允许的服务地址是完整的类似于http://ip:port或者http://域名:端口。
2.记住配置允许跨域的服务是前端的服务,不要搞错了,弄成后端服务了。