一、产生跨域的原因:
浏览器会向服务器发送一个Option方法的预检请求,如果服务器拒绝响应,浏览器就无法访问。因此我们可以针对Option请求来处理跨域问题。
二、解决办法:
在spingboot中针对option请求添加一个准入机制:
@SpringBootApplication
public class BackendApp {
public static void main(String[] args) {
new SpringApplicationBuilder(BackendApp.class).web(WebApplicationType.SERVLET).run(args);
}
// 增加一个准入机制。 当收到浏览器的option预检询问请求的时候,根据这个规则,返回给浏览器信息
@Bean
public WebMvcConfigurer corsWebMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
//允许这个http://www.hudong.com请求路径,访问/user/下的所有方法
registry.addMapping("/user/**").allowedOrigins("http://www.hudong.com");
}
};
}
}