Nuxt.js中的Axios没有正确地捕捉到错误。

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

如上所述,我在Nuxt.js上的Axios没有正确地捕捉到错误。

我需要知道这个错误,这样我就可以提示让用户知道他们的输入是不正确的,但它只是 控制台日志 错误代码状态不是来自我的API的信息。

这是我的代码

await axios
  .post(
    "API LINK",
    {
      email: user.email,
      password: "123456",
      name: user.name,
      dob: user.dob ?? null,
      gender: user.gender ?? null,
      profileImage: imageUrl ?? user.profileImage,
      userType: user.userType
    }
  )
  .then(res => {
    console.log("success");
    console.log(res);
  })
  .catch(err => {
    console.log('fail');
    console.log(err)
  })

这是什么登录到一个chrome控制台

error
add.vue?104b:181 Error: Request failed with status code 400
    at createError (createError.js?2d83:16)
    at settle (settle.js?467f:17)
    at XMLHttpRequest.handleLoad (xhr.js?b50d:61)

但我期望从 控制台.log(err)

(This is response from postman)
{
    "message": "Error creating new user.",
    "error": {
        "code": "auth/invalid-password",
        "message": "The password must be a string with at least 6 characters."
    }
}

我不知道发生了什么。

axios nuxt.js
1个回答
1
投票

试试这个

 console.log(err.response)

为了使代码更简洁,你可以对参数进行反结构。

  .catch(({ response }) => {
    console.log('fail');
    console.log(response)
  })

如果你想用其他的属性名称来代替 response 你可以这样做。

  .catch(({ response: err }) => {
    console.log('fail');
    console.log(err)
  })

问题是当 console.log 试图输出错误时, 打印的是字符串的表示方式, 而不是对象结构, 所以你不会看到... .response 财产。

在这里,你可以读到关于 https:/github.comaxiosaxiosissues960。

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