zoukankan      html  css  js  c++  java
  • SpringBoot 配置跨域

    SpringBoot 配置跨域

    博客部分参考文章:https://www.cnblogs.com/diandianquanquan/p/10607102.html

    1、什么是跨域

    跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。

    最近在学习使用Vue开发项目,由于是前后端分离的模式,前后端拥有不同的域名及端口,因此需要配置跨域。

    2、Cors协议

    H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享),可以为我们解决跨域问题。

    关于 Cors协议参考文章:http://www.ruanyifeng.com/blog/2016/04/cors.html

    3、SpringBoot配置跨域

    SpringBoot配置跨域有三种方式:

    3.1、@CrossOrigin

    @RestController
    @RequestMapping("/lin/user")
    @CrossOrigin
    public class UserController {
    
        @Autowired
        private IUserService userService;
    

    该方式比较直接,但也比较繁琐,需要在每个Controller都配置注解才可以。

    3.2 配置 filter

    @Component
    public class CorsConfiguration implements Filter {
    
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse) res;
            response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD");
            response.setHeader("Access-Control-Max-Age", "3600");
            response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With");
            chain.doFilter(req, res);
        }
        public void init(FilterConfig filterConfig) {}
        public void destroy() {}
    }
    

    该代码参考其他博主。

    3.3 实现 WebMvcConfigurer

    @Configuration
    public class CorsConfiguration implements WebMvcConfigurer {
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("*")
                    .allowCredentials(true)
                    .allowedMethods("GET", "POST", "DELETE", "PUT")
                    .maxAge(3600);
        }
    }
    
    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    feign远程调用问题
    java8--stream
    feign业务组件远程请求 /oauth/token
    redis实现自增序列
    MySQL数据库 相关知识点
    netty
    spring的启动流程及bean的生命周期
    MethodHandleVS反射
    并发与并行
    关于注解的思考
  • 原文地址:https://www.cnblogs.com/CF1314/p/13607500.html
Copyright © 2011-2022 走看看