解决ajax中No 'Access-Control-Allow-Origin' header is present on the requested resource跨域问题

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 "*";
    .......
}

 

你可能感兴趣的:(Ajax,前后端数据交互)