Comment puis-je envoyer un en-tête d'authentification avec un jeton via axios.js? J'ai essayé quelques trucs sans succès, par exemple:
const header = `Authorization: Bearer ${token}`;
return axios.get(URLConstants.USER_URL, { headers: { header } });
Me donne cette erreur:
XMLHttpRequest cannot load http://localhost:8000/accounts/user/. Request header field header is not allowed by Access-Control-Allow-Headers in preflight response.
J'ai réussi à le faire fonctionner en définissant la valeur par défaut globale, mais je suppose que ce n'est pas la meilleure idée pour une seule demande:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
Mettre à jour :
La réponse de Cole m'a aidé à trouver le problème. j'utilise middleware django-cors-headers qui gère déjà l'en-tête d'autorisation par défaut.
Mais j'ai pu comprendre le message d'erreur et corriger une erreur dans mon code de requête axios, qui devrait ressembler à ceci
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });