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

登录提交用户信息至数据库时遇Uncaught (in promise) TypeError错误求助

错误原因及修复方案

这个错误是因为当请求发生异常时(比如网络断连、服务器无响应),err.response可能是undefined,这时候直接访问err.response.data就会触发"Cannot read properties of undefined (reading 'data')"的报错。你的catch块里所有逻辑都直接依赖err.response.data,但完全没考虑err.response不存在的情况,这就是问题根源。

修复后的catch块代码:

.catch((err) => {
  // 先判断是否存在服务器返回的响应
  if (err.response) {
    const errorData = err.response.data;
    if(errorData.errors?.[0] === 'invalid credentials'){
      console.log('invalid credentials')
    } else {
      if(errorData.errors?.length > 0){
        alert(errorData.errors[0])
      } else {
        alert(errorData.message || '登录失败,请稍后重试')
      }
    }
  } else {
    // 处理网络错误或无响应的情况
    alert('网络异常,请检查网络连接后重试')
    console.error('请求错误:', err.message)
  }
})

额外优化建议:

  • 用可选链操作符?.(比如errorData.errors?.[0]),避免errors本身为undefined时触发新的报错
  • 在then块里也可以加一层res.data的存在性判断,进一步提升代码稳定性

内容的提问来源于stack exchange,提问作者Lanre Afeez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:50:23