• java解决前后台跨域问题


    这篇文章主要介绍了使用Cors实现JavaWeb跨域请求问题的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    之前用jsonp 解决跨域问题,现在用CORS实现跨域请求解决java 跨域问题:

    主要代码如下

    package com.hy.fliter;

    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.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.httpclient.HttpStatus;

    /**

    * Created by WangShuai on 2016/7/30.

    */

    public class CorsFilter implements Filter {

    @Override

    public void init(FilterConfig filterConfig) throws ServletException { }

    @Override

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    HttpServletResponse response = (HttpServletResponse) servletResponse;

    HttpServletRequest request = (HttpServletRequest) servletRequest;

    // 指定允许其他域名访问

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

    // 响应类型

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

    // 响应头设置

    response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header, HaiYi-Access-Token");

    if ("OPTIONS".equals(request.getMethod())){

    response.setStatus(HttpStatus.SC_NO_CONTENT);

    }

    filterChain.doFilter(servletRequest, servletResponse);

    }

    @Override

    public void destroy() { }

    }

    web.xml 代码如下配置

    <filter>

    <filter-name>cors</filter-name>

    <filter-class>com.hy.fliter.CorsFilter</filter-class>

    </filter>

    <filter-mapping>

    <filter-name>cors</filter-name>

    <url-pattern>/*</url-pattern>

    </filter-mapping>

  • 相关阅读:
    Angular随笔第一课
    web前端面试集锦(自己搜集的,如有错误请不吝赐教)
    菜单选项卡-2中方法加载选项卡的内容
    dialog使用方法(同一页面,调用一个js代码,实现多个不同样式的弹窗)
    JAVA中对象赋值以及前拷贝,深拷贝等~~
    基类指针指向派生类对象
    JAVA中方法的参数传递(转)
    java和C++的const 和 final 的区别
    JAVA--虚函数,抽象函数,抽象类,接口
    libdash编译中遇到的问题及解决方案
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/11429767.html
Copyright © 2020-2023  润新知