Node.js 和 Plesk 中的 CORS 未定义问题

问题描述 投票:0回答:1

我在 Plesk 上的 Node 应用程序中遇到 CORS 问题。 example.com/checkout.html 上是 PayPal 结帐的表单,付款完成后,它将表单数据发送到 example.com/abc (Node - server.js 带有将数据保存到 mysql 数据库的脚本) example.com/checkout.html 上 javascript app.js 中的 fetch() 函数。

但是当数据发送到 example.com/abc 时,没有任何反应,并出现一条消息:“跨源请求被阻止:同源策略不允许加载远程资源 example.com:3000/abc。(原因:CORS)请求未成功)。状态代码:(空)。类型错误:尝试获取资源时出现网络错误。”

app.js: fetch("https://example.com:3000/abc", { method: "POST", headers: { " Content-Type": "application/json", }, body: JSON.stringify(data), }) .then((response) => response.json()) .then((data) => { console.log(data); }); server.js: app.post('/abc', (req, res) => { //some stuff });
它在本地主机上运行良好。但它不适用于 Plesk 服务器上的真实域。 Plesk 采用 VPS 托管,都是全新的。

我不知道该尝试什么了。

感谢您的帮助和提示。

我尝试在 PLESK 中设置 CORS,如

support.plesk.com/hc/en-us/articles/12377597400087-How-to-set-up-CORS-cross-origin-resource-sharing-in-Plesk-for -Linux。我尝试了所有,在 Apache 中,在 nginx 中,使用 http,使用 https,使用端口,不使用端口,使用 localhost,使用“*”。

我尝试在 Node.js 中安装 cors,并在 Node.js 中使用 cors 升级代码。我在没有 cors() 的情况下尝试过。

在这里尝试了所有变体:

stackoverflow.com/questions/7067966/why-doesnt-adding-cors-headers-to-an-options-route-allow-browsers-to-access-my?page=1&tab=scoredesc#tab -顶部 尝试过:geeksforgeeks.org/how-to-allow-cors-in-express/

尝试过:

enable-cors.org/server_expressjs.html

没有任何作用。

仍然:“跨源请求被阻止:同源策略不允许加载远程资源domain.com:3000/abc。(原因:CORS请求未成功)。状态代码:(null)。未捕获(承诺中) ) TypeError: 尝试获取资源时出现网络错误。"

我做错了什么?

node.js express cors plesk
1个回答
0
投票

没有 CORS 的替代解决方案

如果您需要尽快解决您的需求,请参阅 如果可以使用以下方法。

请从同一来源提供您的应用程序 - protocol.example.com:3000。这将消除 CORS 的问题,因为在这种情况下不存在 CORS。

使用 Express 中的内置中间件

express.static,可以快速轻松地实现这一点。

有关代码示例,请参阅帖子中的答案 - 引用下给出的最小代码示例。

有关详细说明的另一个示例,请参阅帖子 - 下面的详细代码示例。

引用:

一个最小的代码示例

详细代码示例

© www.soinside.com 2019 - 2024. All rights reserved.