web-dev-qa-db-ja.com

Axiosがリクエストパラメータをエンコードしないようにする方法は?

GETリクエストのURLパラメーターを介してAPIキーを渡そうとしています。

ただし、リクエストを送信するときにAxiosがAPIキーの文字をエンコードすることに気付きました。これにより、APIはキーを認識できなかったため、リクエストを拒否します。

AxiosがGETパラメーターをエンコードしないようにするにはどうすればよいですか?

13
Carven

次のように、カスタムparam serializerを使用できます。

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

paramsSerializerはインスタンスレベルで設定できます。

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

またはグローバルレベルで:

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

別のオプションは、APIキーをURLに直接追加することです。

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

「params」設定オプションを使用して、追加のパラメーターを追加できます。

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