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() {}
    }
    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    0099 数据类型转换 之 转为布尔:Boolean()
    0098 数据类型转换 之 转为数字: parseInt 、 parseFloat 、Number()、隐式转换
    0097 数据类型转换 之 转为字符串:toString()、String() 、加号拼接、隐式转换
    0096 获取变量数据类型typeof、字面量
    0095 布尔型Boolean,Undefined和 Null
    0094 字符串型 String
    0093 数字型 Number:整数、小数 、数字型进制、数字型范围、数字型三个特殊值、isNaN
    0092 数据类型、简单数据类型概述
    0091 交换两个变量的值( 实现思路:使用一个 临时变量 用来做中间存储 )
    SCSS 常用属性合集
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7598041.html
Copyright © 2011-2022 走看看