zl程序教程

您现在的位置是:首页 >  后端

当前栏目

通过定义过滤器filter解决跨域问题详解编程语言

跨域编程语言 问题 详解 解决 通过 定义 过滤器
2023-06-13 09:20:44 时间
     跨域是比较常见问题,比较简单的方式就是直接定义一个过滤器filter,然后在请求头里面加上一些参数。下面来看看具体的写法吧。 一、java代码
public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub /** * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse resp = (HttpServletResponse) response; // 添加参数,允许任意domain访问 resp.setHeader("Access-Control-Allow-Origin", "*"); // 这个allow-headers要配为*,这样才能允许所有的请求头 --- update by zxy in 2018-10-19 resp.setHeader("Access-Control-Allow-Headers", "*"); resp.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); resp.setHeader("Access-Control-Max-Age", time+""); chain.doFilter(request, resp); /** * @see javax.servlet.Filter#destroy() @Override public void destroy() { // TODO Auto-generated method stub }
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)

    public void init(FilterConfig filterConfig) throws ServletException {

     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        HttpServletResponse resp = (HttpServletResponse) response;

        resp.setHeader("Access-Control-Allow-Origin", "*");

        // 这个allow-headers要配为*,这样才能允许所有的请求头 --- update by zxy in 2018-10-19

        resp.setHeader("Access-Control-Allow-Headers", "*");

        resp.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");

        resp.setHeader("Access-Control-Max-Age", time+"");

filter-name contextFilter /filter-name filter-class com.hj.userapi.core.filter.ContextFilter /filter-class /filter filter-mapping filter-name contextFilter /filter-name url-pattern /* /url-pattern /filter-mapping
     filter-class com.hj.userapi.core.filter.ContextFilter /filter-class 

        通过自定义过滤器,在请求头上添加参数实现允许容易域名访问来解决跨域问题,实现起来比较简单。