因为项目中需要跨域访问文将上传服务器,尝试了jsonp的方式但是,只能跨域访问GET请求,
上传服务又是POST的请求所以决定实现一个过滤器来完成。
首先自己实现一个filter,这里我简单写了一个如下。
自己实现的CORDFilter类然后在web.xml 配置一下 如下
web.xml配置这样就Ok了,另外还要注意以下几点
1.由于我的文件上传servlet启动了异步执行,所有filter也要开始异步支持,因为默认是flase.
2.前台跨域post请求,由于CORS(cross origin resource share)规范的存在,浏览器会首先发送一次options嗅探,同时header带上origin,判断是否有跨域请求权限,服务器响应access control allow origin的值,供浏览器与origin匹配,如果匹配则正式发送post请求。所以第一次的options嗅探必须要成功返回响应状态,否则就出现错误了。
自己迈过的一个小坑,希望有需要帮助的同学吸取经验,谢谢。
网友评论