30

GET 要求の URL パラメーターを介して API キーを渡そうとしています。

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

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

4

2 に答える 2

25

次のように、カスタム パラメータ シリアライザを使用できます。

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) { /* ... */ };

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

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

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

axios.get('https://foobar.com/api?api_key=' + key, {
  params: {
    foo: 'bar'
  }
});
于 2016-08-25T18:28:06.953 に答える
0

qsライブラリ (または同様のエンコーディング ライブラリ)を使用している場合は、次のこともできます。

import qs from 'qs';

axios.get('https://foobar.com/api', {
    params,
    paramsSerializer: (params) => qs.stringify(params, { encode: false }),
});
于 2022-02-10T10:14:10.363 に答える