java web服务端CORS跨域配置

CORS介绍

CORS-CrossOrigin Resource Sharing,即跨域资源共享,它定义了一种服务器和浏览器的交互方式来确定是否允许跨域请求。CORS简单灵活,但有风险性,能实现ajax跨域访问。

CORS是一个由浏览器共同遵循的一套策略,通过http的header来进行交互。当浏览器识别到发送的请求是跨域请求的时候,会把Origin的Header加入到http请求一起发送到服务器。服务器会解析Header并判断是否允许跨域请求,如果允许,响应头中会有Access-Control-Allow-Origin这个属性。如果服务器允许所有跨域请求,将该属性设置为*即可,如果响应头没有改属性,则浏览器会拦截该请求。

以上是简单情况,CORS将规范分为两种类型的请求,一种是简单请求,另一种是携带预检的请求。预检机制是一种保护机制,防止资源被没有权限的请求修改。浏览器会在发送实际请求之前先发送一个OPTIONS的Http请求来判断服务器是否能接受跨域请求。如果不能接受,浏览器会直接取消后面的实际请求的发送。

java服务端配置方法

引入 cors-filter-1.7.jar和Java-property-utils-1.9.jar
在web.xml中配置:

<filter> 
     <filter-name>CORS </filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter </filter-class>
    <init-param> 
         <param-name> cors.allowOrigin </param-name>
        <param-value> * </param-value>
     </init-param>
     <init-param>
         <param-name> cors.supportedMethods </param-name>
         <param-value> GET, POST, HEAD, PUT, DELETE </param-value>
     </init-param>
     <init-param>
         <param-name> cors.supportedHeaders </param-name>
         <param-value> Accept, Origin, X-Requested-With, Content-Type, Last-Modified </param-value>
    </init-param>
     <init-param>
        <param-name> cors.exposedHeaders </param-name>
        <param-value> Set-Cookie </param-value>
     </init-param>
     <init-param>
        <param-name> cors.supportsCredentials </param-name>
         <param-value> true </param-value>
     </init-param>
</filter>
<filter-mapping>
      <filter-name> CORS </filter-name>
      <url-pattern> /* </url-pattern>
</filter-mapping>

作者:zsj0310
链接:https://www.jianshu.com/p/ab573cc566a2
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值