背景:前台vue使用本地8082端口,后台使用8080端口,这样前台访问后台时候就产生了跨域问题。这里是从后台解决跨域问题。
@RestController
@CrossOrigin //这个注解解决了跨域问题
@RequestMapping("/account")
public class AccountController {
@GetMapping("/{id}")
public Account retrieve(@PathVariable Long id) {
// ...
}
@DeleteMapping("/{id}")
public void remove(@PathVariable Long id) {
// ...
}
}
添加@CrossOrigin
后重启后台,发现就不会产生跨域问题了。这个是给整个controller添加了跨域支持,也可以给部分RequestMapping添加跨域支持
@CrossOrigin(maxAge = 3600)
@RestController
@RequestMapping("/account")
public class AccountController {
@CrossOrigin(origins = "http://domain2.com")
@GetMapping("/{id}")
public Account retrieve(@PathVariable Long id) {
// ...
}
@DeleteMapping("/{id}")
public void remove(@PathVariable Long id) {
// ...
}
}
@CrossOrigin中的2个参数:
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。