Spring+CORS 解决跨域问题

直接上干货:

1. spring 4.1以及之前的版本 通过使用过滤器来解决

首先在pom.xml引入jar包

  
		
		    com.thetransactioncompany
		    java-property-utils
		    1.10
		
		 
		
		    com.thetransactioncompany
		    cors-filter
		    2.6
		

然后在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
		/apps/*
	
  
2. spring 4.2开始支持注解配置

非常简单,我们可以在Controller类或其方法上加@CrossOrigin注解,来使之支持跨域。
举例:

@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/User")
public class UserController {
}

其中origins为CrossOrigin的默认参数,即跨域来源,*即任何来源,也可以是其他域名。即可以以以下形式:

@CrossOrigin("http://test.com")
@CrossOrigin(origins="http://test.com",maxAge=3600)

该注解用于方法上,写法相同,处理时,SpringMVC会对类上标签和方法上标签进行合并。



你可能感兴趣的:(后台开发,spring)