admin管理员组

文章数量:1327945

I'm working on a website that has a request made with axios inside an async await function that looks like this:

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

Everything works fine, but I don't know how to handle errors with a specific status (for example displaying a specific message when the response status is 400). I tried with e.status, but it doesn't work, so, I don't know what to call in order to get the status of the request. I also tried in the try function with response.status in a moment I knew it would respond with a 400 status, but it didn't work either. It just works when the response.status is 200.

I'm working on a website that has a request made with axios inside an async await function that looks like this:

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

Everything works fine, but I don't know how to handle errors with a specific status (for example displaying a specific message when the response status is 400). I tried with e.status, but it doesn't work, so, I don't know what to call in order to get the status of the request. I also tried in the try function with response.status in a moment I knew it would respond with a 400 status, but it didn't work either. It just works when the response.status is 200.

Share Improve this question edited Sep 18, 2018 at 20:34 Carlos Pisarello asked Sep 18, 2018 at 20:16 Carlos PisarelloCarlos Pisarello 1,2846 gold badges23 silver badges41 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

Use error.response.status:

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

Code written in typescript:

try {
  const response = await axios.get('requestUrl')
}
catch (e) {
  const axiosErr = e as AxiosError
  const status = axiosErr.response ? axiosErr.response.status : 0
  if (status === 400) {
    // ...
  } else {
    // ...
  }
}

本文标签: javascripthandle response with status different than 200 with AsynAwait and axios in vuejsStack Overflow