请求的资源(快速服务器)上没有“ Access-Control-Allow-Origin”标头

时间:2020-10-13 07:23:30

标签: node.js reactjs express cors access-control-allow-origin

我有一个快递服务器,其CORS标头具有以下配置

app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT,  DELETE');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, x-auth-token');
  res.setHeader("Content-Type", "application/json");
  next();
});

当我尝试从其他IP地址向服务器发送请求时,出现以下错误。

CORS策略已阻止从来源“ http:// localhost:3000”访问“ https://money-manager-api-v1.herokuapp.com/auth”处的XMLHttpRequest:无“ Access-Control-允许来源的标头出现在请求的资源上。

POST https://money-manager-api-v1.herokuapp.com/auth网:: ERR_FAILED

服务器上的错误在这里

2020-10-13T07:11:59.437570 + 00:00应用程序[web.1]:getaddrinfo ENOTFOUND mongo

2020-10-13T07:11:59.452909 + 00:00 heroku [router]:at =错误代码= H13 desc =“连接已关闭但无响应” method = POST path =“ / auth” host = money-manager- api-v1.herokuapp.com request_id = 9b274fb3-9861-481e-ac68-d52390759b16 fwd =“ 37.252.80.232” dyno = web.1 connect = 1ms service = 17010ms status = 503 bytes = 0 protocol = https

这有什么问题吗?

3 个答案:

答案 0 :(得分:1)

我在express上遇到了(或多或少)相同的问题,所以我在“ cors”库中找到了一个地方,可以添加:

https://yarnpkg.com/package/cors

    npm i -S cors (or)
    yarn add cors

然后在您的app.js(主)文件中,您可以添加:

   ...
   const cors = require('cors');
   ...
   ...
   app.use(cors());

答案 1 :(得分:1)

谢谢大家的回答。我找到了解决方法。

我不知道为什么错误消息与CORS有关,但问题是我在配置文件中传递了错误的MongoDB URI(来自我的本地主机而不是MongoDB地图集)。

答案 2 :(得分:0)

我认为您应该使用cors库。

const cors = require('cors');
app.use(cors());