1.先来说说跨域原理:
跨域原理简单来说就是发起跨域请求的时候,浏览器会对请求域返回的响应信息检查HTTP头,如果Access-Control-Allow-Origin包含了自身域,则允许访问,否则报错.
2.如何解决跨域问题
2.1 使用@CrossOrigin注解
①该注解可以使用在方法和类上,使用在方法上表示只对该方法生效.
@CrossOrigin(origins = {"http://localhost:8080", "null"})
@GetMapping("/hello")
public String say(){
return "hello SpringBoot";
}
②该注解使用在类上是,表示对该类声明所有接口都有效.
③如果需要添加全局配置,可以写一个配置类,继承WebMvcConfigurerAdapter类(不推荐,在SpringBoot2.0和Spring5.0以后,WebMvcConfigurerAdapter已被废弃);
④.可以继承 WebMvcConfigurationSupport ,重写 addCorsMappings 方法.
@Configuration
public class CorsConfigration extends WebMvcConfigurationSupport {
@Override
protected void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/hello/**")//限定访问路径为/hello
.allowedOrigins("http://www.baidu.com")//允许来自www.baidu.com的跨域访问
.allowedMethods("POST","GET");//限定访问方法是POST或者GET
}
}
⑤.可以实现 WebMvcConfigurer 接口实现 addCorsMappings 方法.同上
附上IDEA重写快捷键ctrl+o.
- 还没有人评论,欢迎说说您的想法!