当前位置:   article > 正文

后端解决跨域(Cross-Origin Resource Sharing)(三种方式)_设置指定域名可跨域

设置指定域名可跨域

注解@CrossOrigin

控制层的类上或者方法上加注解@CrossOrigin

实现接口并重写方法

  1. @Configuration
  2. public class CorsConfig implements WebMvcConfigurer {
  3. @Override
  4. public void addCorsMappings(CorsRegistry registry) {
  5. // 设置允许跨域的路径
  6. registry.addMapping("/**")
  7. // 设置允许跨域请求的域名
  8. // 这里写的*表示允许所有域,实际情况可能有以下几种形式
  9. // .allowedOrigins("http://app.example.com:80"); 写全了,个人认为最正规的写法,但是更喜欢用下面这种
  10. // .allowedOrigins("http://app.example.com"); 只写了协议和域名,端口使用http默认的80,https的话是443,应该是最常用的写法(因为一般都使用默认的端口)
  11. // .allowedOrigins("http://123.123.123.123:8888"); 前端服务器没有域名的情况下,也可以使用ip地址
  12. .allowedOriginPatterns("*")
  13. // 是否允许cookie
  14. .allowCredentials(true)
  15. // 设置允许的请求方式
  16. .allowedMethods("GET", "POST", "DELETE", "PUT")
  17. // 设置允许的header属性
  18. .allowedHeaders("*")
  19. // 跨域允许时间,用于设置预检请求(OPTIONS方法)的缓存时间(单位秒)。设置为 3600(即1小时)表示浏览器可以缓存这个CORS响应信息1小时,期间对同一源的跨域请求不再发送预检请求,直接使用缓存结果,从而提高性能。
  20. .maxAge(3600);
  21. }
  22. }

              
原文链接:https://blog.csdn.net/Old_Secretary/article/details/137740154

添加过滤器来实现跨域

  1. @Configuration
  2. public class CORSFilter {
  3. @Bean
  4. public CorsFilter corsFilter(){
  5. CorsConfiguration corsConfiguration = new CorsConfiguration();
  6. corsConfiguration.addAllowedHeader("*");//允许所有请求头("*"
  7. corsConfiguration.addAllowedOrigin("*");//允许所有来源("*"
  8. corsConfiguration.addAllowedMethod("*");//允许所有HTTP方法("*"
  9. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
  10. source.registerCorsConfiguration("/**",corsConfiguration);//将配置应用于所有URL("/**"),这意味着所有请求都将应用这个CORS配置
  11. return new CorsFilter(source);//这个过滤器将注册的CORS配置应用于所有请求,使得所有请求都能通过跨域资源共享
  12. }
  13. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/929780
推荐阅读
相关标签
  

闽ICP备14008679号