tomcat 下web服务跨域访问

因为项目中需要跨域访问文将上传服务器,尝试了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嗅探必须要成功返回响应状态,否则就出现错误了。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • ajax作为前端开发必需的基础能力之一,你可能会使用它,但并不一定懂得其原理,以及更深入的服务器通信相关的知识。在...
    萧玄辞阅读 839评论 0 0
  • 欢迎关注微信公众号:全栈工厂 本文主要参考跨域资源共享 CORS 详解[http://www.ruanyifeng...
    liqingbiubiu阅读 1,865评论 0 3
  • 《一生一世》 一路走来,有过泪也有过福, 就在此刻最幸福, 因为刚好遇见你, 爱你我一生一世, 一生一世只爱你, ...
    葉威阅读 280评论 0 0
  • 概述 EventBus是Android开发最常用的一个库了,它给我们带来了很好便利性,轻松实现消息的发布和订阅。但...
    dylanhuang88阅读 995评论 0 48