tomcat 下web服务跨域访问

因为项目中需要跨域访问文将上传服务器,尝试了jsonp的方式但是,只能跨域访问GET请求,

上传服务又是POST的请求所以决定实现一个过滤器来完成。

首先自己实现一个filter,这里我简单写了一个如下。

tomcat 下web服务跨域访问_第1张图片
自己实现的CORDFilter类

然后在web.xml 配置一下 如下


tomcat 下web服务跨域访问_第2张图片
web.xml配置

这样就Ok了,另外还要注意以下几点

1.由于我的文件上传servlet启动了异步执行,所有filter也要开始异步支持,因为默认是flase.

2.前台跨域post请求,由于CORS(cross origin resource share)规范的存在,浏览器会首先发送一次options嗅探,同时header带上origin,判断是否有跨域请求权限,服务器响应access control allow origin的值,供浏览器与origin匹配,如果匹配则正式发送post请求。所以第一次的options嗅探必须要成功返回响应状态,否则就出现错误了。

自己迈过的一个小坑,希望有需要帮助的同学吸取经验,谢谢。

你可能感兴趣的:(tomcat 下web服务跨域访问)