Express.js部署至Vercel后CORS跨域请求失败问题求助
Express.js部署至Vercel后CORS跨域请求失败问题求助
各位大佬好!我最近把自己的Express后端部署到Vercel之后,本地前端(地址是http://localhost:5173)完全没法获取后端数据,一直弹出CORS相关的报错,试了一些方法都没解决,来请教大家!
遇到的具体错误
第一个请求/reviews的报错:
Access to XMLHttpRequest at 'https://richter-restaurant-server-alzami12-al-zamis-projects.vercel.app/reviews' from origin 'http://localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
第二个请求/jwt的报错(预检请求失败):
Access to XMLHttpRequest at 'https://richter-restaurant-server-alzami12-al-zamis-projects.vercel.app/jwt' from origin 'http://localhost:5173' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我当前的CORS配置代码
我在Express里是这么配置CORS的:
app.use(cors({ origin: 'http://localhost:5173' }));
项目的依赖版本
这是我package.json里的依赖部分:
"dependencies": { "@stripe/agent-toolkit": "^0.2.0", "cors": "^2.8.5", "dotenv": "^16.4.7", "express": "^4.21.2", "firebase-admin": "^13.0.1", "form-data": "^4.0.1", "jsonwebtoken": "^9.0.2", "mailgun.js": "^10.2.4", "mongodb": "^6.12.0", "nodemailer": "^6.9.16", "stripe": "^17.5.0", "uuid": "^11.0.3" }
已尝试的解决办法
- 把后端代码里的
console.log和client.connect都注释掉了,排除无关代码的影响 - 尝试在CORS配置中添加
credentials: true,同时前端请求也设置了withCredentials: true,但问题依然存在 - 补充说明:我的JWT token是存在localStorage中的
另外我还有对应的错误截图,显示的就是上面提到的CORS报错内容。
备注:内容来源于stack exchange,提问作者Al Zami




