You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel Serverless函数生产环境无法读取请求头的问题求助

Vercel Serverless函数生产环境无法读取请求头的问题求助

我正在做一个Vercel项目,本地用vercel dev开发完全正常,但部署到Vercel无服务器生产环境后遇到了问题——我需要在GET请求里通过请求头传递邮箱、密码和ID这些凭证,本地测试没问题,但生产环境抛出了如下错误:

Error: TypeError: Cannot read properties of undefined (reading 'email')
    at module.exports (/var/task/api/user/user.js:16:16)
    at Server.<anonymous> (/opt/rust/nodejs.js:2:11027)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Server.<anonymous> (/opt/rust/nodejs.js:9:6760)

错误出现在这段代码中:

let email, pwd, userId;

  try {
    email = req.body.email || req.headers["email"] || req.headers?.email || null;
    pwd = req.body.pwd || req.headers["pwd"] || req.headers?.pwd || null;
    userId = req.body.participantId || req.headers["id"] || req.headers?.id || null;
  } catch (err) {
    console.error("Error parsing input:", err);
    return res.status(400).json("Bad Request");
  }

客户端的GET请求代码:

axios.get(`/api/user/user/`, {headers: { "email": email, "pwd": pwd, id: participantId }}, { withCredentials: true })
                    .then((res) => res.data.fullName)
                    .catch((err) => {
                        console.log(err);
                        return "Error loading participant";
                    })

我已经尝试的调试步骤:

  • 分别在本地和生产环境打印req.headers,两边都能看到邮箱、密码和ID的正确值
  • 确保在无服务器函数里处理请求头时是大小写不敏感的
  • 验证Axios确实正确发送了请求头

我的观察:

  • 请求头确实已经发送到后端
  • 但生产环境的无服务器函数就是读不到这些头
  • 本地开发环境完全没有问题

我想请教的问题:

  1. 为什么无服务器函数在生产环境里读不到请求头?
  2. Vercel的无服务器环境有没有已知的会过滤某些请求头的问题?
  3. 我该怎么确保邮箱、密码、ID这些请求头能在生产环境里被正确传递和读取?

麻烦大家帮忙看看,谢谢了!

备注:内容来源于stack exchange,提问作者Lipe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:30:27