3.6 @CrossOrigin注解

3.6 @CrossOrigin注解

用途:处理跨域请求

org.springframework.web.bind.annotation.Crossorigin注解用于在Spring MVC处理跨域请求

属性

使用@CrossOrigin注解可指定如下表所示的属性。

属性 类型 是否必要 说明
allowCredentials String 包含与请求的域相关的Cookie,使用时必须指定具体的域
allowedHeaders String数组 请求头中的请求列表
exposedHeaders String数组 客户端允许访问的响应头列表
maxAge long 响应前的缓存最大有效时间,单位是秒
methods RequestMethod数组 请求支持的方法,默认支持RequestMapping中设置的方法
origins Sting数组 所有支持域的集合,如果没有定义,默认支持所有域
value String数组 origins属性一样

示例代码

@CrossOrigin注解示例代码如下:

可以处理所有域的请求

代码:

1
2
3
4
5
6
@CrossOrigin(maxAge=3600)
@Controller
public class CrossoriginController
{
...
}

表示CrossoriginController控制器的所有方法可以处理所有域上的请求.

可以处理给定域的请求

代码:

1
2
3
4
5
6
7
8
9
@CrossOrigin(
origins="http://www.fkit.org",
maxAge=3600
)
@Controller
public class CrossOriginController
{
....
}

表示CrossOriginController控制器的所有方法可以处理http://www.fkit.org域上的请求。

@Crossorigin注解使用在类和方法上

下面的例子中,CrossoriginController类上有@Crossorigin注解,login方法上也有@CrossOrigin注解, Spring MVC合并两个注解的属性一起使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
//该控制器接受所有域上发过来的请求
@CrossOrigin(maxAge=3600)
@Controller
public class CrossoriginController
{
//该方法只接受这个`http://www.xxx.com`域发送来的请求
@CrossOrigin(origins="http://www.xxx.com")
@GetMapping(value="/login")
public String login()
{
....
}
}