gpt4 book ai didi

reactjs - 如何使用 aws-amplify 处理 api 错误?

转载 作者:行者123 更新时间:2023-12-03 13:41:38 26 4
gpt4 key购买 nike

我目前正在尝试使用 aws-amplify React lib 将数据发布到由 aws api-gateway 触发的 aws lambda 函数。

这是代码:

API.post("snippets","snippets/", {
body: data,
}).then(response => response).catch(console.log(err))

在主要情况下,一切正常。

但是我的 lambda 函数旨在验证输入数据并返回状态代码 400 ,返回的有效负载如下所示:

{
"errors": [
{
"field": "title",
"message": "This field is required"
}
]
}

我想捕获这些错误以便在前端显示它们,但 aws-amplify 似乎有未记录的行为。

默认情况下,返回的状态代码 400 会抛出默认错误消息:

Error: Request failed with status code 400
at createError (createError.js:16)
at settle (settle.js:18)
at XMLHttpRequest.handleLoad (xhr.js:77)

有没有办法获取返回的有效负载而不是这个神奇的错误?

最佳答案

事实证明,aws-amplify在幕后使用 Axios 进行 http 调用。

使用 Axios 时,您必须 console.log(error.response): https://github.com/axios/axios/issues/960

这是我所做的修复:

API.post("snippets","snippets/", {
body: data,
}).then(response => response).catch(error => console.log(error.response.data))

针对 aws-amplify 文档的拉取请求已开放:https://github.com/aws/aws-amplify/pull/633

关于reactjs - 如何使用 aws-amplify 处理 api 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com