部署到 vercel 后,我收到此错误 - “对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态”

问题描述 投票:0回答:1

我已在 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() 中间件,但这没有帮助。 目前我没有使用这个中间件。

javascript reactjs node.js express cors
1个回答
0
投票

您可以尝试从 vercel.json 文件中删除这些标头并使用默认配置,如下所示

{
  "version": 2,
  "builds": [
      {
          "src": "*.js",
          "use": "@vercel/node"
      }
  ],
  "routes": [
      {
          "src": "/(.*)",
          "dest": "/"
      }
  ]
}

这可能有用。请告诉我问题是否仍然存在。

© www.soinside.com 2019 - 2024. All rights reserved.