我已在 vercel 上部署了 MERN 应用程序的后端和前端,现在收到此错误 - “对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态”。 我已经从 google、chatgpt 和 youtube 尝试了一切,但没有任何效果。 这是我的 vercel.json 文件,可能会有所帮助
{
"version": 2,
"builds": [
{
"src": "*.js",
"use": "@vercel/node"
}
],
"rewrites": [
{
"source": "/api/(.*)",
"destination": "/api/$1"
},
{
"source": "/(.*)",
"destination": "/"
}
],
"headers": [
{
"source": "/api/(.*)",
"headers": [
{ "key": "Access-Control-Allow-Credentials", "value": "true" },
{ "key": "Access-Control-Allow-Origin", "value": "https://snap-vault.vercel.app" },
{ "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,DELETE,POST,PUT" },
{ "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Authorization" }
]
}
]
}
我多次尝试重新部署,还将“Access-control-allow-origin”设置为“*”以及许多其他内容。 我尝试在 server.js 文件中使用 cors() 中间件,但这没有帮助。 目前我没有使用这个中间件。
您可以尝试从 vercel.json 文件中删除这些标头并使用默认配置,如下所示
{
"version": 2,
"builds": [
{
"src": "*.js",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "/"
}
]
}
这可能有用。请告诉我问题是否仍然存在。