422使用httpPost的响应会返回{“ response”:{}}而不是实际的API响应

时间:2018-10-02 20:39:09

标签: javascript networking promise http-post es6-promise

如果我运行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不匹配。

如何获取完整的错误和响应正文?

1 个答案:

答案 0 :(得分:1)

在使用异步调用时,在大多数情况下(如果您的框架不能自动执行),则必须解析响应以获取可以进一步使用的数据,请使用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);