【问题标题】:How to throw Catch in fetch POST request in react native如何在本机反应中在获取 POST 请求中抛出 Catch
【发布时间】:2021-10-04 13:39:17
【问题描述】:

当我在 React Native 中调用 POST 请求时,我遇到了调用错误的问题,我知道有一个问题,但它只会抛出网络连接,我该如何处理我从响应中得到的错误时我的密码或用户名错误,例如从响应中调用此错误时:

Object {
  "error": "invalid_request",
  "error_description": "Missing form parameter: grant_type",
}
    fetch("https://websiteo.com/auth/realms/realmsid/protocol/openid-connect/token", {
      method: 'POST',
      headers: myHeaders,
      body: urlencoded.toString(),
    })
      .then(response => response.json())
      .then(result => {
        //console.log(result)
        console.log(result)
        saveToken('secure_access_token', `${result.access_token}`)
        props.navigation.navigate('HomeApp') //i need to throw catch also when username or password wrong
      })
      .catch(error => alert(error.response.data)) //This is only thrown when network problems 

【问题讨论】:

    标签: javascript reactjs typescript react-native


    【解决方案1】:

    您可以在响应中验证 json 是否为 200 或失败,如下所示:

    fetch("https://websiteo.com/auth/realms/realmsid/protocol/openid-connect/token", {
      method: 'POST',
      headers: myHeaders,
      body: urlencoded.toString(),
    })
      .then(response => {
         if (response.ok) {
            return response.json();
         } else {
            throw new Error('Something went wrong');
         }
      })
      .then(result => {
        //console.log(result)
        console.log(result)
        saveToken('secure_access_token', `${result.access_token}`)
        props.navigation.navigate('HomeApp')
      })
      .catch(error => alert(error.response.data)) //This is only thrown when network problems 
    

    【讨论】:

    • 我收到此错误:[未处理的承诺拒绝:TypeError:未定义不是对象(评估'error.response.data')]
    • 好的,现在我可以抛出错误:TypeError: undefined is not an object (evalating 'error.response.data')],但是有没有办法让我得到关于错误凭据的错误?
    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多