nginx反向代理解决跨域

  1. 前端域名:enjoy-reading.tony93.top
  2. 接口域名:api-node.tony93.top
  3. 接口服务:127.0.0.1:3000
// nginx
……
location / {
            # 反向代理到 3000 端口
            proxy_pass http://127.0.0.1:3000;
            add_header Access-Control-Allow-Origin *;
        }
……
// 接口服务,我这里是node.js
// app.js
……
app.all("*",function(req,res,next){
  //设置允许跨域的域名,*代表允许任意域名跨域
  //res.header("Access-Control-Allow-Origin","*"); // nginx 已经设置了,这里就不需要了
  //允许的header类型
  res.header("Access-Control-Allow-Headers","content-type, token");
  //跨域允许的请求方式 
  res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
  if (req.method.toLowerCase() == 'options')
      res.sendStatus(200);  //让options尝试请求快速结束
  else
      next();
})
……