Vercel部署NestJS后端API后POST请求CORS问题解决
Vercel部署NestJS API时POST请求触发CORS错误的解决方法
问题场景
在Vercel平台部署NestJS后端API后,可正常访问首页,发送GET请求获取全部用户也能正常返回数据,但发送POST登录请求时触发CORS错误,控制台显示跨域请求被阻止。已确认NestJS的CORS配置正确,且该API在其他平台部署时无此问题。
当前vercel.json配置
{ "version": 2, "name": "tasks-api", "buildCommand": "npm start", "installCommand": "npm install", "regions": ["fra1"], "builds": [ { "src": "dist/main.js", "use": "@vercel/node" } ], "routes": [ { "src": "/(.*)", "dest": "dist/main.js", "methods": ["GET", "POST", "PUT", "DELETE"] } ] }
排查过程
最初怀疑是请求头配置问题,但排查后未发现异常。GET请求可正常执行,说明基础路由和服务运行正常,问题仅出现在POST请求场景。
解决方法
将项目的dist文件夹加入代码仓库。原因是Vercel不会像常规后端服务器那样自动构建NestJS项目生成dist文件,必须确保该文件夹已提前存在于仓库中,部署时才能正确加载编译后的代码,从而解决CORS相关的异常。
内容的提问来源于stack exchange,提问作者Ahmad_Yousif
相关产品推荐
相关产品推荐

