web-dev-qa-db-fra.com

Comment empêcher Axios d'encoder mes paramètres de requête?

J'essaie de transmettre une clé API via les paramètres d'URL dans ma demande GET.

Cependant, je remarque qu'Axios code les caractères dans ma clé API lors de l'envoi de la demande. Cela provoque l'API de rejeter ma demande car elle n'a pas pu reconnaître ma clé.

Comment empêcher Axios d'encoder mes paramètres GET?

13
Carven

Vous pouvez utiliser un sérialiseur de paramètres personnalisé comme suit:

axios.get('https://foobar.com/api', {
  paramsSerializer: function(params) {
    var result = '';
    // Build the query string 
    return result;
  }
});

paramsSerializer peut être défini au niveau de l'instance:

var instance = axios.create({ paramsSerializer: function(params) { /* ... */ } })

ou au niveau mondial:

axios.defaults.paramsSerializer = function(params) { /* ... */ };

Une autre option consiste à ajouter directement la clé api à l'URL:

axios.get('https://foobar.com/api?api_key=' + key);

Vous pouvez ajouter des paramètres supplémentaires en utilisant l'option de configuration `params ':

axios.get('https://foobar.com/api?api_key=' + key, {
  params: {
    foo: 'bar'
  }
});
9
Nick Uraltsev