zoukankan      html  css  js  c++  java
  • SpringBoot利用Filter来解决跨域问题

    1、为什么会出现跨域问题?

    浏览器不允许通过ajax请求,来请求另一个网站的资源

    2、SpringBoot如何通过Filter来解决跨域问题

    2.1、写一个 CrosFilter 类来实现 javax.servlet.Filter 接口

    public class CrosFilter implements javax.servlet.Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
     
        }
     
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletResponse res = (HttpServletResponse) servletResponse;
            //*号表示对所有请求都允许跨域访问
            res.addHeader("Access-Control-Allow-Origin", "*");
            res.addHeader("Access-Control-Allow-Methods", "*");
            filterChain.doFilter(servletRequest, servletResponse);
        }
     
        @Override
        public void destroy() {
     
        }
    }

    2.2、向Spring容器中添加一个 FilterRegistrationBean 

    写一个配置类

    @Configuration
    public classFilterRegistrationConfig{
     /**
         * 配置跨域访问的过滤器
         * @return
         */
        @Bean
        public FilterRegistrationBean registerFilter(){
            FilterRegistrationBean bean = new FilterRegistrationBean();
            bean.addUrlPatterns("/*");
            bean.setFilter(new CrosFilter());
            return bean;
        }
    }

    或者写在主启动类中

    @SpringBootApplication
    public class exampleApplication {
     
        public static void main(String[] args) {
            SpringApplication.run(exampleApplication.class, args);
        }
     
        /**
         * 配置跨域访问的过滤器
         * @return
         */
        @Bean
        public FilterRegistrationBean registerFilter(){
            FilterRegistrationBean bean = new FilterRegistrationBean();
            bean.addUrlPatterns("/*");
            bean.setFilter(new CrosFilter());
            return bean;
        }
    }
  • 相关阅读:
    STM32固件库和自定义工程模板
    STM32存储器映射和寄存器映射
    VScode搭建OpenCV环境
    手写数字识别——基于LeNet-5卷积网络模型
    敏感信息泄露
    Google的高级搜索——Google hack
    session fixation攻击
    认证和会话管理漏洞
    SQLmap
    基于时间型SQL盲注
  • 原文地址:https://www.cnblogs.com/houchen/p/14151278.html
Copyright © 2011-2022 走看看