Node.js react/express之间的CORS标题问题

Node.js react/express之间的CORS标题问题,node.js,reactjs,express,cors,Node.js,Reactjs,Express,Cors,我对CORS有一个问题,尽管我阅读并实施了各种各样的解决方案 我有一个应用程序,它使用Express/NodeJS作为api,使用React JS作为前端。 在开发过程中,react应用程序http://localhost:3000能够与express后端通话http://localhost:9000使用应用程序。使用(cors()) 现在我正尝试在生产中使用此应用程序 这两个应用程序都保存在单独的git存储库中。 React作为一个静态网站部署在aws s3上,运行良好。 节点JS部署在弹性豆

我对CORS有一个问题,尽管我阅读并实施了各种各样的解决方案

我有一个应用程序,它使用Express/NodeJS作为api,使用React JS作为前端。 在开发过程中,react应用程序
http://localhost:3000
能够与express后端通话
http://localhost:9000
使用
应用程序。使用(cors())

现在我正尝试在生产中使用此应用程序

这两个应用程序都保存在单独的git存储库中。 React作为一个静态网站部署在aws s3上,运行良好。 节点JS部署在弹性豆茎上,处于就绪状态。 我有一个Postgres SQL数据库连接到ebs实例(节点应用程序),我可以在pgadmin4中连接到该实例

两个应用程序在route 53
myproject.com
中使用相同的基本域

两者都配置为侦听https/443。我可以同时点击两个URL
https://myproject.com
https://api.myproject.com
&它们看起来就像在我的本地主机环境中一样

当我尝试在我的网站上注册用户时,遇到以下错误:

Access to XMLHttpRequest at 'https://api.myproject.com/users/signup/' from origin 'https://myproject.com' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
这两个应用程序都可以“看到”对方,但这就是它的终点。 查看我的代码,我无法确定问题发生在何处:

server.js 我所尝试的: 这些解决方案中的大多数都来自这篇文章:

使用app.use(cors())

使用通配符
*
而不是域名

白色列出我的cors域名(来自此博客帖子):

我还将
app.use(cors())
移动到我的路线上方,正如另一篇StackOverflow帖子中建议的那样


在这一点上,我被困住了,所以任何帮助都会得到感谢,所以请提前表示感谢。

尝试以这种方式要求cors:

const cors = require('cors')({
    origin: 'https://yourdomain.com',
});
通过这种方式,您可以添加源代码,然后只需调用express应用程序顶部的app.use(cors())

const app = Express();
app.use(BodyParser.json());
app.use(cors);

这是我通常工作的方式。您可能要处理的另一个因素是,如果域尚未完全传播,这可能会导致您的aws区域无法识别域的dns。不过这只是一个理论

尝试以这种方式要求COR:

const cors = require('cors')({
    origin: 'https://yourdomain.com',
});
通过这种方式,您可以添加源代码,然后只需调用express应用程序顶部的app.use(cors())

const app = Express();
app.use(BodyParser.json());
app.use(cors);

这是我通常工作的方式。您可能要处理的另一个因素是,如果域尚未完全传播,这可能会导致您的aws区域无法识别域的dns。不过这只是一个理论

您使用的是什么版本的express和cors?响应的HTTP状态码是什么?您可以使用浏览器devtools中的网络窗格进行检查。这是4xx还是5xx错误,而不是200 OK成功响应?我实际上得到了3个单独的错误:#1
加载资源失败:服务器响应状态为404()
,#2
加载资源失败:服务器响应状态为504(网关超时)
和#3
在'https://api.myproject.com/users/signup/“起源”https://myproject.com'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。
您使用的是什么版本的express和CORS?响应的HTTP状态代码是什么?您可以使用浏览器devtools中的网络窗格进行检查。这是4xx还是5xx错误,而不是200 OK成功响应?我实际上得到了3个单独的错误:#1
加载资源失败:服务器响应状态为404()
,#2
加载资源失败:服务器响应状态为504(网关超时)
和#3
在'https://api.myproject.com/users/signup/“起源”https://myproject.com'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。