ajax跨域只是属于浏览器“同源策略”中的一部分,如果前端html页面通过ajax访问后台服务时,两个服务不在同一个域上会存在跨域问题。具体报错如下:
解决办法:
1、如果是spring或SpringBoot项目
在访问的接口处添加 @CrossOrigin 注解,其中有两个参数如下,如果不加则代表允许所有ip访问
- origins : 允许可访问的域列表
- maxAge:准备响应前的缓存持续的最大时间(以秒为单位)
@CrossOrigin
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/{id}")
public User getUser() {
// ...
}
}
2、如果是普通jsp项目
代码中添加:responce.header("Access-Control-Allow-Origin","*"); 代表所有url都可以访问
3、如果是Nginx代理服务器的方式
location /api {
add_header Access-Control-Allow-Origin "*";
.......
}