Axios: Der Körper kann nicht von der Axios-Antwort abgerufen werden

Erstellt am 17. Aug. 2017  ·  3Kommentare  ·  Quelle: axios/axios

Zusammenfassung

Ich sende eine Post-Anforderung an meine von meiner lokalen zu einer anderen Domäne. (Ich verwende Chrome im Entwicklermodus, um das Cors-Problem zu umgehen.)

Das ist mein Code:

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);
});

Das Problem ist, dass ich nur den Status 400 (Bad Request) als Antwort bekomme, während ich, wenn ich dieselbe Anfrage über curl cli/postman senden würde, den Status plus einen Text wie den folgenden erhalten würde:

[
    {
        "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"
    }
]

Aber nicht mit Axios. Dies kann kein Cors-Problem sein, da ich get/post-Abfragen problemlos durchführen kann, ich kann einfach nicht den Körper erhalten, der mit dem Status zurückgegeben wird.

Kontext

  • Axios-Version: "^0.16.2",*
  • Umgebung: *Knoten v6.9.4, Chrome 54, Windows 7

Hilfreichster Kommentar

Macht nichts, console.log('ERROR::', error.response.data); hat den Job gemacht, ich hoffe, das wird klar dokumentiert.

Alle 3 Kommentare

Macht nichts, console.log('ERROR::', error.response.data); hat den Job gemacht, ich hoffe, das wird klar dokumentiert.

@samayo Vielen Dank, dass Sie darauf geantwortet haben. Es hat mich wahnsinnig gemacht, die Verwendung der einfachen XHR-Anforderung funktionierte gut, soweit es darum ging, Fehlerantworten zurückzubekommen, aber bei der Verwendung von axios fragte ich mich, warum ich die Antworten nicht auf Fehler zurückbekommen konnte, die Sie perfekt beantwortet haben. Vereinbart, es sollte einfacher in der Dokumentation zu finden sein.

Wenn ich eine Post-Anfrage mit async await-Syntax sende, wenn der Res-Status 200 ist, wird der Antworttext zurückgesendet, aber wenn der Antwortstatus 400 ist, wird der Antworttext nicht gesendet. Wie bekomme ich einen Fehler mit der async await-Syntax?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen