springboot解决跨域问题

缺乏、安全感 2023-09-25 21:24 175阅读 0赞

一.跨域问题

浏览器向服务端发生请求,发生跨域问题。
在这里插入图片描述
出这个提示的原因是基于浏览器的同源策略,去判断是否跨域请求,同源策略是浏览器的一种安全机制,从一个地址请求另一个地址,如果协议、主机、端口三者则不是跨域,否则就是跨域请求。

比如:

从http://localhost:8601 到 http://localhost:8602 由于端口不同,是跨域。

从http://192.168.101.10:8601 到 http://192.168.101.11:8601 由于主机不同,是跨域。

从http://192.168.101.10:8601 到 https://192.168.101.11:8601 由于协议不同,是跨域。

注意:服务器之间不存在跨域请求。

二.解决方法:

方法一

在需要请求的controller类上添加@CrossOrigin注解

方法二

配置类

  1. import org.springframework.context.annotation.Bean;
  2. import org.springframework.context.annotation.Configuration;
  3. import org.springframework.web.cors.CorsConfiguration;
  4. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  5. import org.springframework.web.filter.CorsFilter;
  6. @Configuration
  7. public class GlobalCorsConfig {
  8. /**
  9. * 允许跨域调用的过滤器
  10. */
  11. @Bean
  12. public CorsFilter corsFilter() {
  13. CorsConfiguration config = new CorsConfiguration();
  14. //允许白名单域名进行跨域调用
  15. config.addAllowedOrigin("*");
  16. //允许跨越发送cookie
  17. config.setAllowCredentials(true);
  18. //放行全部原始头信息
  19. config.addAllowedHeader("*");
  20. //允许所有请求方法跨域调用
  21. config.addAllowedMethod("*");
  22. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
  23. source.registerCorsConfiguration("/**", config);
  24. return new CorsFilter(source);
  25. }
  26. }

发表评论

表情:
评论列表 (有 0 条评论,175人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Springboot解决问题

    (跨域资源共享)策略,允许跨域请求。常见的解决方法是在后端代码中添加CORS配置,允许特定的域名或所有域名的请求。可以使用Spring Boot提供的@CrossOrig...

    相关 springboot解决问题

        跨域是前后端分离,前端页面发起异步ajax请求,而浏览器因为同源策略导致请求失败,请求正确到了服务端,而且服务端也正常处理,只不过浏览器不认可,所以跨域问题的门槛是浏览