422 ответ с использованием httpPost возвращает {"response": {}} вместо фактического ответа API - PullRequest
0 голосов
/ 02 октября 2018

если я запускаю 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 голосов
/ 02 октября 2018

Когда вы работаете с асинхронными вызовами, в большинстве случаев (если ваша инфраструктура не делает этого автоматически), вам нужно проанализировать ответ, чтобы получить данные, с которыми вы можете работать дальше, используйте JSON.parse() для этого.

Вот пример того, что действительно происходит (если вы получаете данные с веб-сервера, данные всегда имеют тип string ):

// 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);
...