首页 > 解决方案 > 在 vuejs 中使用 Asyn/Await 和 axios 处理状态不同于 200 的响应

问题描述

我正在一个网站上工作,该网站在异步等待函数中使用 axios 发出请求,如下所示:

async function () {
  try {
    const response = await axios.get('requestUrl')
  } catch (e) {
    throw new Error(e)
  }
}

一切正常,但我不知道如何处理具有特定状态的错误(例如,当响应状态为 400 时显示特定消息)。我尝试使用 e.status,但它不起作用,所以,我不知道要调用什么来获取请求的状态。我还尝试了带有 response.status 的 try 函数,我知道它会以 400 状态响应,但它也不起作用。它仅在 response.status 为 200 时有效。

标签: javascriptvue.jsecmascript-6async-awaitaxios

解决方案


使用error.response.status

async function () {
  try {
    const response = await axios.get('requestUrl')
  } catch (e) {
    if (e.response.status === 400) {
      // ...
    } else {
      // ...
    }
  }
}

推荐阅读