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() {}
    }
    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    Jmeter测试报表相关参数说明
    jQuery实现图片延迟加载
    Jmeter 用动态参数进行测试
    MyEclipse 10.6 汉化和破解工具
    将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片
    List的二种循环速度比较
    java+flash在线拍照和编辑,保存到服务器(Spring3.2.2+swf+jquery)
    eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized
    weblogic异常weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request
    在静态页面html中跳转传值
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7598041.html
Copyright © 2011-2022 走看看