【发布时间】:2020-06-23 03:36:05
【问题描述】:
我在后端有一个 React 应用程序和 Nodejs(Express)。部署到主机服务器后,我为更新某些文档所做的功能无法正常工作。它给出了 CORS 错误:
我在 server.js 中有这行代码来处理 CORS 策略:
app.use((req, res, next) => {
res.set({"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Methods" : "HEAD, OPTIONS, GET, POST, PUT, PATCH, DELETE",
"Access-Control-Allow-Headers" : "Content-Type, Authorization, X-Requested-With"})
next();
});
GET 和 POST 方法都可以,但是 PUT 方法不行(不知道 Delete 有没有试过)
我在这个问题上花了很多时间;试过这个:https://stackoverflow.com/a/42463858/11896129
在网上找了一堆解决方案,尝试从 IIS web.config 文件配置它,没有解决我的问题。我可能会错过哪一部分?
【问题讨论】:
-
您是否尝试过使用
corsnodeJS 模块?它可能会为您完成这项工作。 -
我在后端有一个 React 应用程序和 Nodejs(Express) - 解决 CORS 问题的最佳方法是通过从后端服务器提供 React 脚本包来消除它.请参阅 this 项目(我是作者)并在自述文件中搜索 CORS。
-
目前没有SSR。回到 CORS,React 应用程序构建的结果是文件:
.html页面、.js带有 React 代码的脚本包和可选的.map文件。所有这些文件都称为构建工件。如果您让 Express 提供构建工件,那么客户端的浏览器会从单个后端服务器获取所有内容(构建工件和 API 响应)。这为 CORS 留下了空间。因此不需要 CORS 标头和发送这些标头的包。 -
尝试禁用所有扩展,和/或尝试在隐身窗口中。并尝试清除该站点的 cookie 和浏览器缓存。并禁用您已安装的任何防病毒软件。并从不同的浏览器、不同的机器和不同的网络尝试。关键是要消除一些其他正在运行的软件或您的机器可能会干扰请求的可能性,并消除某些防火墙设置干扰的可能性等。
标签: javascript node.js express error-handling cors