使用 axios帖子捕获错误正文

我从我的后端代码发送一个状态代码 422,其中包含错误的描述。

我从我的后端代码发送一个状态代码 422,其中包含错误的描述。

post: function(url, reqBody) {
    const request = axios({
        baseURL: config.apiUrl,
        url: url,
        headers: {
            'Content-Type': 'application/json',
            'Authorization': sessionStorage.getItem('token')
        },
        method: 'POST',
        data: reqBody,
        responseType: 'json'
    });
    return request
        .then((res) => {
            return res;
        })
        .catch((error) => {
            console.log(error);
            return error;
        })
}

问题是,当后端返回错误代码 422 时,我捕获的错误对象没有关于响应正文的信息。

177

我有同样的问题,答案(根据 Axios & gt;= 0.13)是专门检查error.response.data

axios({
    ...
}).then((response) => {
    ....
}).catch((error) => {
    if( error.response ){
        console.log(error.response.data); // => the response payload 
    }
});

有关详细信息,请参见here

34

AXIOS 错误响应的“正文”取决于请求的响应类型。

如果你想了解这个问题的全部细节,你可以看到这个博客:How to catch the body of an error in AXIOS

总而言之,AXIOS 将返回 3 个不同的主体,具体取决于错误:

错误的请求,我们实际上在我们的请求中做了一些错误的事情 (缺少参数,格式不好),那就是实际上没有被发送,当这种情况发生时,我们可以使用error.message访问信息。

axios.get('wrongSetup')
.then((response) => {})
.catch((error) => {
    console.log(error.message);
})

错误的网络请求:当我们试图到达的服务器根本没有响应时,就会发生这种情况。这可能是由于服务器关闭,或者 URL 错误。在这种情况下,我们可以使用error.request访问请求的信息。

axios.get('network error')
.then((response) => {})
.catch((error) => {
    console.log(error.request );
});

错误状态:这是最常见的请求。任何返回状态不同于 200 的请求都可能发生这种情况。它可能是未经授权的、未找到的、内部错误等等。发生此错误时,我们可以通过访问代码段中指定的参数来掌握请求的信息。对于数据 (如上所述),我们需要访问error.response.data

axios.get('errorStatus')
.then((response) => {})
.catch((error) => { 
     console.log(error.response.data);  
     console.log(error.response.status);  
     console.log(error.response.headers); 
 })
21

对于那些使用等待 / 异步和打字稿

try {
    const response = await axios.post(url, body)
} catch (error) {
    console.log(error.response.data);
}
9

对于 react native,它只是为我工作

api.METHOD('endPonit', body)
  .then(response => {
   //...
  })
  .catch (error => {
    const errorMessage = JSON.p(error.request.response)
    console.log(errorMessage.message)
  })

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(406)
通过默认 iPhone耳机主动消除噪音
上一篇
确定设备是否是平板电脑的最佳方法是什么 (phone or tablet)
下一篇

相关推荐

  • axios携带cookie:如何使用axios携带Cookie实现跨域请求

    示例示例axios携带cookie有两种方式:使用属性…

    2023-06-05 02:25:05
    0 53 93
  • ios翻译屏幕轻松实现精准翻译

    iOS翻译屏幕是一种可以帮助用户在不同语言之间进行翻译的功能。它可以帮助用户在不同语言之间进行交流,从而更好地理解他们的对话。要实现iOS翻译屏幕,需要使用Apple的Natural Language API,它可以帮助您识别文本中的语言,并将其转换为另一种语言。…

    2023-04-25 12:30:26
    0 76 13
  • ios手机解压软件最佳iOS解压软件,轻松解压文件!

    iOS手机解压软件是指能够将压缩文件(如ZIP,RAR,7z等)解压缩到iOS手机上的软件。目前市面上有很多iOS手机解压软件,比如WinZip,iZip,Unzip,Zip Browser,iUnarchive等。以WinZip为例,它可以帮助用户在iOS设备上快速解压缩ZIP、RAR、7z、TAR、GZIP和BZIP2文件。它还可以将文件加密,并将其传输到其他设备。…

    2023-06-16 06:59:41
    0 48 38
  • ios系统最新版本是多少全新体验,更强大的功能

    iOS系统最新版本是iOS 代码为14.0。iOS 14支持iPhone 6s及以上机型,提供了全新的App Library、Widgets、Picture in Picture、Siri等功能。…

    2023-07-15 02:04:29
    0 90 25
  • apple watch需要更高版本的ios:Apple Watch需要更新iOS,获得最佳体验

    Apple Watch需要iOS 2或更高版本,以便可以使用Apple Watch应用程序。要检查设备上的iOS版本,请执行以下步骤:打开设备上的“设置”应用程序。…

    2024-01-16 04:56:41
    0 59 45
  • ios移动应用开发:如何使用iOS开发构建出色的移动应用

    iOS移动应用开发是指使用iOS开发工具(如Xcode)和iOS SDK(Software Development Kit)开发iOS应用程序。iOS SDK提供了一系列的API,可以帮助开发者构建出丰富多彩的iOS应用程序。…

    2023-11-03 05:17:37
    0 28 99
  • taptap有ios版的吗?在iOS上享受精彩游戏体验

    答:Taptap是一款Android和iOS平台上的游戏应用,它提供了大量的游戏下载、评论和发现功能。Taptap有iOS版本,可以在App Store上进行下载。代码如下:…

    2023-04-15 14:18:08
    0 69 83
  • ios 国际化:Welcome to the App Store!

    iOS 国际化是一种技术,它可以让应用程序能够根据用户的地理位置,语言和文化背景来显示不同的内容。它可以帮助开发人员扩大其应用程序的受众范围,并使其应用程序更具有吸引力。…

    2023-10-20 08:38:30
    0 26 94

发表评论

登录 后才能评论

评论列表(31条)