• 使用servlet过滤器实现跨域功能


    1.定义过滤器接口Filter的实现类,实现类中修改respone的头信息,把 “Access-Control-Allow-Origin” 的域名修改问请求方的域名,如下:

    package filter;  

    import java.io.IOException;  

    import javax.servlet.Filter;  

    import javax.servlet.FilterChain;  

    import javax.servlet.FilterConfig;  

    import javax.servlet.ServletException;  

    import javax.servlet.ServletRequest;  

    import javax.servlet.ServletResponse;  

    import javax.servlet.http.HttpServletResponse;  

    public class CORSFilter 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, PUT, OPTIONS, DELETE");  

            response.setHeader("Access-Control-Max-Age", "3600");  

            response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type");  

            response.setHeader("Access-Control-Allow-Credentials", "true");  

            chain.doFilter(req, res);  

        }  

    public void init(FilterConfig filterConfig) {}  

    public void destroy() {}  }  

    <filter>  

        <filter-name>CORSFilter</filter-name>  

        <filter-class>com.exiao.platform.api.supplier.filter.CORSFilter</filter-class>  

    </filter>  

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    springboot 服务器端设置允许跨域

    package cn.xydata.util;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;

    import javax.servlet.*;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;

    /**
    * 跨域过滤器
    * @author cjq
    * @since 2017年9月26日
    */
    @Component
    public class CorsFilterUtil implements Filter {

    private static final Logger logger = LoggerFactory.getLogger(CorsFilterUtil.class);

    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,PUT,OPTIONS,PATCH");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    System.out.println("*********************************过滤器被使用**************************");
    chain.doFilter(req, res);
    }
    public void init(FilterConfig filterConfig) {}
    public void destroy() {}
    }
    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    DOM面试题【三】
    JS面试题【二】
    移动端面试题【一】
    【python】mysql查询错误告警的处理
    硬币排成线
    书籍复印
    分割回文串
    分割回文串 II
    完全平方数
    俄罗斯套娃信封问题
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7598041.html
Copyright © 2020-2023  润新知