Spring Boot通过使用@CrossOrigin注解来允许跨域访问,@CrossOrigin可以应用于RestController类或者某个具体的方法(即RestController的某个方法),并可带(也可不带,不带参数的话允许任何域的访问)一个名为origins的参数,该参数可以指定一个可以跨域访问的域的列表。
例如:
@RestController
@CrossOrigin
public class Controller{
...
}
将允许来自任何域名的访问。
再例如:
@RestController
@CrossOrigin(origins = "http://otherdomain.com")
public class Controller{
...
}
只允许来自otherdomain.com的访问。
对方法的使用方法与对类的使用方法一样,甚至可以同时对类和方法使用该注解。
事实上Spring Boot并没有对跨域访问做出任何限制,限制跨域访问的是浏览器,浏览器会拦截跨域访问的response或request,通过实验可以确定,对于Chrome浏览器,request是可以正常发出的,浏览器拦截的是response。