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中配置:

  
    CORS  
    com.thetransactioncompany.cors.CORSFilter  
      
     cors.allowOrigin  
        *  
      
      
     cors.supportedMethods  
        GET, POST, HEAD, PUT, DELETE  
      
      
     cors.supportedHeaders  
        Accept, Origin, X-Requested-With, Content-Type, Last-Modified  
      
      
        cors.exposedHeaders  
        Set-Cookie  
      
      
        cors.supportsCredentials  
        true  
      
  
  
    CORS  
    /*  
  

你可能感兴趣的:(java web服务端CORS跨域配置)