尝试从 localhost:8080 向 localhost:3000 发出 GET 请求,但出现 cors 错误,并且在我的 node.js 服务器上安装 cors 并不能修复它

Posted

技术标签:

【中文标题】尝试从 localhost:8080 向 localhost:3000 发出 GET 请求,但出现 cors 错误,并且在我的 node.js 服务器上安装 cors 并不能修复它【英文标题】:Trying to make a GET request from localhost:8080 to localhost:3000 but I get a cors error, and installing cors on my node.js server doesn't fix it 【发布时间】:2022-01-10 18:44:54 【问题描述】:

因此,我尝试从 localhost:8080 上的前端应用程序向我的 Node.js/Express.js localhost:3000 服务器发出 axios GET 请求,我明白为什么会出现 CORS 错误。我不明白为什么在我安装了cors npm 包并将它用作我的 Node.js/Express.js 后端的中间件后,我仍然收到 CORS 错误。

我是在 app.js 文件中完成的

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

然后,当我尝试从前端发出 GET 请求时,我仍然收到以下错误:



Access to XMLHttpRequest at 'http://localhost:3000/images' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我不应该使用 cors 包解决这个问题吗?

【问题讨论】:

您的问题解决了吗?给我们分享一个mvp。 Cors 错误很常见,解决方法总是一样的。 @JRichardsz 不幸的是我还没有,我仍在寻找解决方案。下面的答案对我不起作用,我知道这不是问题,因为我有另一个 node.js/express 项目,它以相同的方式使用 cors 包,它工作得很好。一旦我弄清楚了,我会发布我的解决方案。 【参考方案1】:

您必须允许 cors 接收该来源。有一个很好的good video about this。但是将参数 origin 添加到 cors() 中间件应该可以解决它。

var cors = require('cors');
app.use(cors(
    origin: "http://localhost:8000"
));

【讨论】:

以上是关于尝试从 localhost:8080 向 localhost:3000 发出 GET 请求,但出现 cors 错误,并且在我的 node.js 服务器上安装 cors 并不能修复它的主要内容,如果未能解决你的问题,请参考以下文章

CORS 策略已阻止从源“http://localhost:4200”访问“http://localhost:8080/BeginSignup”获取

从 axios 请求 url 中删除 localhost:8080

在 android 模拟器中测试 localhost

无法打开输入文件:localhost:8080

GAE - BindError:无法绑定localhost:8080

从 localhost:4200 访问 localhost:8080 的 XMLHttpRequest 已被 CORS 策略阻止