Java跨域设置

原创 2016年05月30日 20:12:11

Access-Control-Allow-Origin 为允许哪些Origin发起跨域请求. 这里设置为”*”表示允许所有,通常设置为所有并不安全,最好指定一下。
Access-Control-Allow-Methods 为允许请求的方法.
Access-Control-Max-Age 表明在多少秒内,不需要再发送预检验请求,可以缓存该结果
Access-Control-Allow-Headers 表明它允许跨域请求包含content-type头,这里设置的x-requested-with ,表示ajax请求

    <filter>
        <filter-name>CrossOrigin</filter-name>
        <filter-class>org.digdata.swustoj.filter.CrossOriginFilter</filter-class>
         <init-param>
            <param-name>AccessControlAllowOrigin</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>AccessControlAllowMethods</param-name>
            <param-value>POST, GET, DELETE, PUT</param-value>
        </init-param>
        <init-param>
            <param-name>AccessControlMaxAge</param-name>
            <param-value>3628800</param-value>
        </init-param>
        <init-param>
            <param-name>AccessControlAllowHeaders</param-name>
            <param-value>x-requested-with</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CrossOrigin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
package org.digdata.swustoj.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;

/**
 * 
 * @author wwhhf
 * @since 2016年5月30日
 * @comment 跨域过滤器
 */
public class CrossOriginFilter implements Filter {

    private FilterConfig config = null;

    @Override
    public void init(FilterConfig config) throws ServletException {
        this.config = config;
    }

    @Override
    public void destroy() {
        this.config = null;
    }

    /**
     * 
     * @author wwhhf
     * @since 2016/5/30
     * @comment 跨域的设置
     */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        // 表明它允许"http://xxx"发起跨域请求
        httpResponse.setHeader("Access-Control-Allow-Origin",
                config.getInitParameter("AccessControlAllowOrigin"));
        // 表明在xxx秒内,不需要再发送预检验请求,可以缓存该结果
        httpResponse.setHeader("Access-Control-Allow-Methods",
                config.getInitParameter("AccessControlAllowMethods"));
        // 表明它允许xxx的外域请求
        httpResponse.setHeader("Access-Control-Max-Age",
                config.getInitParameter("AccessControlMaxAge"));
        // 表明它允许跨域请求包含xxx头
        httpResponse.setHeader("Access-Control-Allow-Headers",
                config.getInitParameter("AccessControlAllowHeaders"));
        chain.doFilter(request, response);
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

java设置响应头,解决跨域访问限制

public class testFilter implements Filter { public void doFilter(ServletRequest request, ServletRes...
  • colorsunlight
  • colorsunlight
  • 2016年01月08日 16:45
  • 9258

java web服务器实现跨域访问

一、CORS概述 跨源资源共享标准通过新增一系列 HTTP 头,让服务器能声明那些来源可以通过浏览器访问该服务器上的各类资源(包括CSS、图片、JavaScript 脚本以及其它类资源)。另外,...
  • poisions
  • poisions
  • 2016年05月20日 10:03
  • 13801

java服务器端配置支持跨域请求

前言:之前做好的登陆接口,刚刚拿去给前端调用。发现前端那边报错,无法调到接口。因为我们后端的接口是在一台服务器上,前端(使用的是nodejs)的代码在另一台服务器上,导致两台服务器之间无法相互调用(服...
  • andong154564667
  • andong154564667
  • 2016年05月26日 16:01
  • 9267

Java Web应用中支持跨域请求

由于工程合作开发的需要,后台的应用要能支持跨域访问,但是在这个跨域访问“时好时坏”,我们这帮屌丝所知道的就是加上两个jar包,然后声明一下Filter,感觉很简单的有没有!!感觉自己很牛X有没有!!全...
  • lmy86263
  • lmy86263
  • 2016年06月21日 00:10
  • 13603

java服务器端解决跨域问题【工具包系列】

现在很多开发的API都支持ajax直接请求,这样就会导致跨域的问题,解决跨域的问题一方面可以从前端,另一方面就是服务器端。既然是搞服务器端,做对外的API服务,当然是做到越简单越好,前端只需要傻傻的使...
  • LOVELONG8808
  • LOVELONG8808
  • 2017年04月11日 10:03
  • 12245

在spring项目中配置跨域访问

跨域是老生常谈的问题了,不同域名或者相同域名不同端口都会产生跨域访问的问题。解决方案1、在前端用jsonp的方式请求 2、后端设置响应头header 3、用Spring MVC 4.2+的版本,已...
  • Healist
  • Healist
  • 2017年01月31日 16:15
  • 2138

java cookie跨域操作

正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。 1.可在同一应用服务器内共享方法:设置cookie.setPath("/");     本机tomcat...
  • Hu199055
  • Hu199055
  • 2017年05月17日 20:13
  • 655

javaweb接受跨域请求设置

在做javaweb项目时有时会遇到外部网站向项目中发请求的情况,这时如果不设置项目可接受跨域请求时,则外部网站无法请求数据。下面介绍一种通过设置项目中的web.xml文件的方式实现跨域请求。 步骤:...
  • binbinyouli301
  • binbinyouli301
  • 2017年02月26日 10:21
  • 520

关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总

解决问题的关键是怎么把第二个域中的内容得到且具有简单的操作权限。  1、通过域名来解决,      将两个不同的环境的主域名配置成同一个域名,这样就不存在IE中的信任与不信任的问题,就可以互相访问了。...
  • ZHENJIANWEI
  • ZHENJIANWEI
  • 2010年03月31日 10:53
  • 3219

使用cookie实现跨域系统单点登录

      上一篇博客介绍了单点登录的认证流程和实现,本文将介绍通过cookie实现单点登录。      单点登录作为目前比较流行的服务于企业业务整合的解决方案之一, 使得在多个应用系...
  • Daybreak1209
  • Daybreak1209
  • 2016年04月18日 15:30
  • 8127
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java跨域设置
举报原因:
原因补充:

(最多只允许输入30个字)