zoukankan      html  css  js  c++  java
  • 使用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() {}
    }
    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    宫立秋20201015-3 每周例行报告
    宫立秋 20201008-1 每周例行报告
    分析“中国铁路12306”查询某个火车经过的车站和预计到达时间的request请求和respond响应。
    来自童晶老师的游戏开发课程作业
    飞机大战
    总结
    20201207-总结
    实时时钟
    作业要求 20201126-1 每周例行报告
    要求 20201120-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7598041.html
Copyright © 2011-2022 走看看