2017-10-19 17 views
6

edit2: https://stackoverflow.com/a/37784969/107282 indique que je n'ai pas à m'inquiéter car cela ne se produit pas sur un périphérique réel.L'état du handle (par exemple 503) dans la réponse OPTIONS Axios


J'utilise Axios dans une application hybride VueJS (Cordova) et je appelle une API.

Axios est (correctement) faire une demande « prévol » OPTIONS devant mes demandes GET/POST, mais si l'API retourne un 503 à ce moment-là , mon code de gestion des erreurs ne soit pas appelé.

HTTP.post(url, data, {headers: {Authorization: 'Bearer ' + token.getAccessToken()}}) 
 
    .then(response => response) 
 
    .catch(error => { 
 
    // Not reached 
 
    });

Comment puis-je attraper ce statut d'erreur?


modifier: capture d'écran des outils de dev chrome:

503 on OPTIONS request

+0

Quel est le contenu de 'response' en cas de' 503'? Est-ce que 'response.data' est défini? – Sergio

+0

J'utilise axios et l'erreur 503 est gérée par le bloc catch sur l'opération get, le statut est dans error.response.status – FAjir

+1

503 n'est pas une erreur de réseau? Les erreurs réseau ne sont pas gérées par axios. – sandrooco

Répondre

2

j'ai pu reproduire le problème et la solution la plus simple que je pouvais trouver comme ci-dessous

axios.interceptors.response.use(null, (error) => { 
    return Promise.reject(error); 
}); 

Comme vous pouvez voir dans mes tests que j'ai pu obtenir l'erreur et la réponse pour différents scénarios

Network error

+0

Cela ne fait pas partie de la requête OPTIONS. – jezmck

+0

En effet, vous n'envoyez pas les demandes d'options –