Axios: En-têtes remplacés lors de la création de plusieurs instances

Créé le 20 juil. 2017  ·  3Commentaires  ·  Source: axios/axios

Résumé

J'ai remarqué que lorsque plusieurs instances d'axios sont créées avec une configuration d'en-têtes personnalisée, la dernière remplace toute autre configuration précédemment définie. Voici le bout de code le plus simple pour le reproduire :

const axios = require('axios');
const baseURL = '';

const first = axios.create({ baseURL });
first.defaults.headers.common.authorization = 'foo';
const second = axios.create({ baseURL });
second.defaults.headers.common.authorization = 'bar';

console.log(first.defaults.headers.common);

Résulte en :

Object
    Accept: "application/json, text/plain, */*"
    authorization: "bar"
    ...

Je ne suis pas sûr que ce soit le bon comportement puisque les instances sont censées être indépendantes.

Le contexte

  • version axios : par exemple : v0.16.2
  • Environnement : par exemple : nœud v6.9.2

Commentaire le plus utile

Cela fait partie d'un problème plus vaste que nous allons aborder bientôt (et bien plus tard que ce n'est raisonnable). Voir #812.

Tous les 3 commentaires

J'aimerais pouvoir écrire first.headers.authorization = 'foo' et le faire changer pour cette instance

Eh bien, la seule façon de contourner cette limitation semble être de forcer la valeur de l'en-tête :

first.get('/posts', {
    headers: {
        authorization: 'foo',
    },
})

Cela fait partie d'un problème plus vaste que nous allons aborder bientôt (et bien plus tard que ce n'est raisonnable). Voir #812.

Cette page vous a été utile?
0 / 5 - 0 notes