javascript - 使用 httpPost 的 422 响应返回 {"response":{}} 而不是实际的 API 响应
问题描述
如果我运行 curl localhost:4000/myserver
,我会得到:
{error: "foo"}
//MyAPI
function create(){
return httpPost('localhost:4000/myserver', myParams);
}
并调用它:
return MyApi.create(config, params).then(res => {
console.log("Full success" + JSON.stringify(res));
})
.catch(err => {
console.log("Full error" + JSON.stringify(err));
})
控制台日志仅显示Full error{"response":{}}
,这与我的 cURL 不匹配。
如何获得完整的错误和响应正文?
解决方案
当您使用异步调用时,在大多数情况下(如果您的框架没有自动执行此操作),您必须解析响应以获取您可以进一步使用的数据,并使用JSON.parse()
它。
这是一个实际发生的示例(如果您从 Web 服务器接收数据,则数据始终是字符串类型):
// Fake response
const response = '{ "name":"John", "age":30, "city":"New York"}';
console.log('typeof response:', typeof response);
// Parsing the response
const parsed = JSON.parse(response);
console.log('typeof parsed:', typeof parsed);
console.log('parsed:', parsed);
推荐阅读
- c++ - 如何在 C++ 中使用数组而不是向量来读取 .CSV 文件中的数据
- python - 通过在图像中插值连接虚线
- python - 这是使用pytorch的transformer代码,但是使用gpu的时候出现错误
- reactjs - NextJS - getStaticPaths 检查新页面
- sql - 根据列条件连接不同的表
- vb.net - 如何在 vb .NET 中创建平滑的圆角形式
- amazon-web-services - 使用路由 53 在 lightsail 上实现超过 5 个域
- csv - 将多个 CSV 从一张 Google 表格插入
- python - 将 .xlsx 文件保存到 Azure Blob 存储
- bash - 使用 wget 和 awk 下载文件