请求后端接口报类似异常,是出现跨域问题

No 'Access-Control-Allow-Origin' header is present on the requested resource.
后端是 node express 启的服务,配置如下
// 设置请求头为允许跨域
res.header("Access-Control-Allow-Origin", "http://localhost:9527");
// 设置服务器支持的所有头信息字段,这里设置的是允许自定义的头,根据实际情况设置
res.header("Access-Control-Allow-Headers", "Authorization,_o,_p,_w,Content-Type");
// 如果需要支持 cookie ,需要设置true,并且Access-Control-Allow-Origin 需要指定特定域名,不能用 *
res.header("Access-Control-Allow-Credentials", "true");
// 设置服务器支持的所有跨域请求的方法
res.header("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");

app.all("*", function (req, res, next) {
  // 设置请求头为允许跨域
  res.header("Access-Control-Allow-Origin", "http://localhost:9527");
  // 设置服务器支持的所有头信息字段
  res.header("Access-Control-Allow-Headers", "Authorization,_o,_p,_w,Content-Type");
  res.header("Access-Control-Allow-Credentials", "true");
  // 设置服务器支持的所有跨域请求的方法
  res.header("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
  console.log(req.method.toLowerCase())
  if (req.method.toLowerCase() == "options") {
    res.send(200);
    // 让options尝试请求快速结束
  } else {
    next();
  }
});
app.get("/user", function (req, res) {
    const msg = [];
    const result = {
      data: msg,
      code: 0,
      msg: "",
    };
    console.log('user')
    res.json(result);
  });

app.all 需要在其他接口的上边

标签: none

添加新评论