Das mag dumm erscheinen, aber ich versuche, die Fehlerdaten abzurufen, wenn eine Anforderung in Axios fehlschlägt.
axios.get('foo.com')
.then((response) => {})
.catch((error) => {
console.log(error) //Logs a string: Error: Request failed with status code 404
})
Ist es möglich, anstelle der Zeichenfolge ein Objekt mit möglicherweise dem Statuscode und dem Inhalt abzurufen? Beispielsweise:
Object = {status: 404, reason: 'Not found', body: '404 Not found'}
javascript
axios
Sebastian Olsen
quelle
quelle
response
Eigenschaft beziehe ?console.log
Verwendet dietoString
Methode zum Formatieren vonError
Objekten. Es hat nichts mit der Bezugnahme auf dieresponse
Immobilie zu tun .console.log
GriffenError
Objekte als Sonderfall. Ich kann nicht sagen, wie genau es in Browsern implementiert ist, aber wenn Sieconsole.log({ foo: 'bar' });
undconsole.log(new Error('foo'));
in der Chrome DevTools Console aufrufen, werden Sie feststellen, dass die Ergebnisse anders aussehen.Wie @Nick sagte, hängen die Ergebnisse, die Sie sehen, wenn Sie
console.log
ein JavaScript-Error
Objekt verwenden, von der genauen Implementierung abconsole.log
, die variiert und (imo) das Überprüfen von Fehlern unglaublich ärgerlich macht.Wenn Sie das vollständige
Error
Objekt und alle darin enthaltenen Informationen unter Umgehung dertoString()
Methode anzeigen möchten , können Sie einfach JSON.stringify verwenden :quelle
Ich benutze diese Interceptors, um die Fehlerantwort zu erhalten.
quelle
Mit TypeScript ist es einfach, mit dem richtigen Typ zu finden, was Sie wollen.
quelle
Mit dem Spread-Operator (
...
) können Sie ein neues Objekt wie folgt erzwingen:Beachten Sie: Dies ist keine Fehlerinstanz.
quelle
Dies ist ein bekannter Fehler, versuchen Sie ihn zu verwenden
"axios": "0.13.1"
https://github.com/mzabriskie/axios/issues/378
Ich hatte das gleiche Problem und habe es letztendlich benutzt
"axios": "0.12.0"
. Es funktioniert gut für mich.quelle
error
validateStatus
In der Anforderungskonfiguration gibt es eine neue Option . Sie können damit festlegen, dass keine Ausnahmen ausgelöst werden, wenn Status <100 oder Status> 300 (Standardverhalten). Beispiel:quelle
Sie können den Fehler in ein Objekt einfügen und das Objekt folgendermaßen protokollieren:
Hoffe das hilft jemandem da draußen.
quelle
Um den vom Server zurückgegebenen http-Statuscode zu erhalten, können Sie
validateStatus: status => true
axios-Optionen hinzufügen :Auf diese Weise löst jede http-Antwort das von axios zurückgegebene Versprechen.
https://github.com/axios/axios#handling-errors
quelle