当前位置: 首页 > 知识库问答 >
问题:

React node express应用程序-Heroku CORS错误

葛承教
2023-03-14

我在Heroku上设置了一个express项目,在vercel上设置了一个react前端。当我从前端发出请求时,会出现以下错误:

在'https://helpr-dev.herokuapp.com/users/register'从原点'https://helpr-front.vercel.app“”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以获取禁用cors的资源。

我在Express应用程序上实现了CORS:

const cors = require('cors')
app.use(cors())

我还尝试将配置传递给它,例如:

const whitelist = ['http://localhost:3000', 'https://helpr-front.vercel.app/']
const corsOptions = {
  origin: function (origin, callback) {
    if (!origin || whitelist.indexOf(origin) !== -1) callback(null, true)
    else callback(new Error('Not allowed by CORS'))
  },
  credentials: true,
}

app.use(cors(corsOptions))

以下是react应用程序中请求的外观:

const submitRegisterForm = async e => {
        e.preventDefault()

            const response = await fetch(`${serverUrl}/users/register`, {
                method: 'POST',
                mode: 'cors',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    name: name,
                    email: email,
                    password: password,
                    accountType: accountType
                })
            })

            const data = await response.json()
        
    }

我尝试过删除模式:'cors'部分,但没有区别。

有人能告诉我我错过了什么吗?

前端应用程序托管在此处:https://helpr-front.vercel.app/后端应用程序托管在此处:https://helpr-dev.herokuapp.com/

前端完整代码可以在这里找到:https://github.com/coccagerman/helpr-front后端完整代码可以在这里找到:https://github.com/coccagerman/helpr-back

非常感谢。

共有1个答案

魏彦
2023-03-14

所以这主要是由于与mongoDb地图集的连接问题造成的。首先,Heroku IP地址没有在数据库网络连接上列入白名单。像这里提到的那样修复:将Heroku应用程序连接到Atlas MongoDB云服务

然后我在使用的mongo atlas连接URI上出现错误。

最后,似乎有必要在我提出的每个请求上添加模式:'cors',config。

在express上,不需要cors配置。我只使用app。使用(cors())

 类似资料:
  • 每当我尝试运行我的应用程序时,屏幕截图中的窗口就会弹出。声明找不到默认活动,因此我无法部署我的应用程序: 我的代码清单文件 这就是我点击运行时得到的窗口- 我的代码的Gradle文件:

  • null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle

  • 2020-01-28T01:42:46.028688+00:00 Heroku[web.1]:使用命令启动进程 2020-01-28T01:42:45.000000+00:00APP[api]:生成成功 2020-01-28T01:42:48.451589+00:00Heroku[web.1]:状态从启动更改为崩溃 2020-01-28T01:42:48.433700+00:00 Heroku[W

  • 我正在把我的pwa网站改成twa,我遇到了一些麻烦。 当我尝试同步或构建项目时,我遇到以下错误: 失败:生成失败,出现异常。 出了什么问题:java。lang.NoClassDefFoundError: JAVAlang.NoClassDefFoundError(无错误消息) 我不熟悉android和java,有人能帮我吗? 我正在使用bubblewrap/cli我的gradle: 编辑:我在任何

  • 在使用美国蜂窝的手机上,我在核心库中发现了以下错误: 如何解决这个问题有什么建议吗?

  • 我的应用程序https://github.com/amyequinn/weatherapp在终端运行npm启动时运行得很好,但是当将应用程序部署到Heroku时,它崩溃了,我找不到解决方案。错误为H10,应用程序在Get方法时崩溃,状态503.... “2020-05-08T23:13:34.132652+00:00 Heroku[router]:at=error code=h10 desc=”A

  • 我试图在完全使用JavaConfig配置的Spring MVC应用程序中使用处理404错误。 Spring MVC版本为4.1.5 我读过这样的话: null SpringConfigurationInitializer 请注意,我正在使用 而且 MVC配置 存储配置 安全配置

  • 我正在尝试使用rails创建新项目,但它显示错误。我正在处理mac及其显示错误 $rails新特快专递