Wie zu erkennen, ein 401 mit axios und stoppen Sie die Fehler-Konsole
Ich bin versucht, axios Aufruf einer API-Daten zurück.
Ich habe den folgenden code der funktioniert
axios.get('http://api/courses')
.catch(function (error) {
if (error.response) {
console.log(error.response.status);
} else {
console.log('Error', error.message);
}
})
.then(response => {
console.log(response.data)
});
Dies funktioniert gut, die API gibt einen 200 und Daten, so dass in der Konsole bekomme ich die Daten zurückgegeben.
Allerdings funktioniert dies nicht
axios.get('http://api/courses')
.catch(function (error) {
if (error.response) {
console.log(error.response.status);
} else {
console.log('Error', error.message);
}
})
.then(response => {
console.log(response.data)
});
Auf dem oben genannten Aufruf, bekomme ich eine 401-Rückkehr aus der API, ich möchte in der Lage sein, zu erkennen, und tun Sie etwas (wo ich bin derzeit dabei eine Konsole.log). Aber in der Konsole bekomme ich folgenden Fehler:
GET http://api/courses 401 (Unauthorized)
(anonymous) @ spread.js:25
e.exports @ spread.js:25
e.exports @ spread.js:25
Promise.then (async)
r.request @ spread.js:25
r.(anonymous function) @ spread.js:25
(anonymous) @ index.js:20
(anonymous) @ (index):49
(index):58 Uncaught (in promise) TypeError: Cannot read property 'data' of undefined
at axios.get.catch.then.response ((index):58)
at <anonymous>
Gibt es eine Möglichkeit, zu erfassen, ein 401? Wie es scheint gängige Praxis von API ' s, die verlangen, dass auth, aber ich kann nicht scheinen, um es herauszufinden.
Dank
- Möglich, Duplikat der Wie behandeln 401 (Authentifizierungsfehler) in der axios und reagieren?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine interceptor, fangen alle 401 Antworten. Auf diese Weise können Sie Feuer-Umleitung oder jede Art von Aktionen, die Sie möglicherweise benötigen. In diesem Beispiel bin ich Entsendung eines redux Aktion bereinigt, ein paar Sachen und machen Sie das login-Formular.
401
Antwort, die Einstellung, die ein interceptor auf den Axios-Instanz funktioniert, aber dieerror.response
bleibt unbestimmt. Dies geschieht mit Axios 0.18 und 0.19. So dass diese Methode nicht funktioniert.401
status code passiert und CORS ist nicht aktiviert für die Genehmigung pre-flight-Anfrage, Axios wird nicht erhalten Sie Zugriff auf die eigentliche Antwort. Das muss behoben werden auf dem server. Die Ratschläge, die hier präsentiert für Spring Boot ist Analog zu jeder anderen API: baeldung.com/spring-security-cors-preflight