Axios: Não é possível obter o corpo da resposta do axios

Criado em 17 ago. 2017  ·  3Comentários  ·  Fonte: axios/axios

Resumo

Estou enviando uma solicitação de postagem para meu domínio local para outro. (Estou usando o Chrome no modo dev para contornar o problema do Cors)

Este é o meu código:

axios('https://..../signup', {
    method: 'POST',
    data: {
    email: '[email protected]',
    password: 'fdsfds',
    confirmPassword: 'fdsfds'
  }

}).then(function(response) {
  console.log('response::', response.data);
})
  .catch(function(error) {
  console.log('ERROR::', error.data);
});

O problema é que eu só recebo o status 400 (Bad Request) como resposta, enquanto que se eu fosse enviar a mesma solicitação via curl cli/postman eu obteria o status mais um corpo como:

[
    {
        "param": "email",
        "msg": "Email is not valid"
    },
    {
        "param": "password",
        "msg": "Password must be at least 4 characters long"
    },
    {
        "param": "confirmPassword",
        "msg": "Passwords do not match"
    }
]

Mas não com axios. Isso não pode ser um problema do Cors, porque eu posso fazer consultas get/post bem, eu simplesmente não consigo obter o corpo que é retornado com o status.

Contexto

  • versão axios: "^0.16.2",*
  • Ambiente: *node v6.9.4, chrome 54, windows 7

Comentários muito úteis

Não importa que console.log('ERROR::', error.response.data); tenha feito o trabalho, espero que isso seja documentado claramente.

Todos 3 comentários

Não importa que console.log('ERROR::', error.response.data); tenha feito o trabalho, espero que isso seja documentado claramente.

@samayo Obrigado por responder isso. Isso estava me deixando louco, usando a solicitação XHR simples funcionou bem até obter respostas de erro, mas ao usar axios, eu estava me perguntando por que não consegui obter as respostas de volta com erro, o que você respondeu perfeitamente. Concordo que deve ser mais fácil de encontrar na documentação.

Quando eu envio uma solicitação de postagem usando a sintaxe de espera assíncrona, se o status de res for 200, ele enviará de volta o corpo da resposta, mas quando o status da resposta for 400, ele não enviará o corpo da resposta. Como obter erro usando a sintaxe de espera assíncrona?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ghost picture ghost  ·  3Comentários

9tor picture 9tor  ·  3Comentários

altruisticsoftware picture altruisticsoftware  ·  3Comentários

emaincourt picture emaincourt  ·  3Comentários

achingbrain picture achingbrain  ·  3Comentários