@CrossOrigin
注解
@CrossOrigin
注解在控制器方法上启用:
1 |
|
默认的 @CrossOrigin
启用以下功能:
- All origins.所有请求源,向该服务器提交请求的URI
- All headers.全部的访问头信息
- All HTTP methods to which the controller method is mapped.控制器方法映射到的所有HTTP方法。
- allowedCredentials is not enabled by default since that establishes a trust level that exposes sensitive user-specific information such as cookies and CSRF tokens, and should only be used where appropriate.allowedCredentials默认情况下未启用,因为它建立了一个信任级别,用于公开敏感的用户特定信息,如Cookie和CSRF令牌,并且只能在适当的情况下使用。
- maxAge is set to 30 minutes.maxAge设置为30分钟。预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
@CrossOrigin
也在类级别上得到支持,并由所有方法继承:
1 | "http://domain2.com", maxAge = 3600) (origins = |
@CrossOrigin
可以在类和方法同时使用:
1 | 3600) (maxAge = |
全局配置
Java配置
要在MVC Java配置中启用CORS,请使用CorsRegistry
回调:
1 |
|
XML配置
要在XML命名空间中启用CORS,使用 <mvc:cors>
元素:
1 | <mvc:cors> |
CORS过滤器
可以通过内置的CorsFilter来应用CORS支持。
1 |
|
其他
- 使用jsonp来进行跨域,但不太安全。
- 后台response添加header,
response.setHeader("Access-Control-Allow-Origin", "*")
;
1 |
|