我在 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: 尝试获取资源时出现网络错误。"
我做错了什么?