如何防止Axios编码我的请求参数?

时间:2016-08-24 07:15:47

标签: javascript ajax axios

我试图通过我的GET请求中的URL参数传入API密钥。

但是,我注意到Axios在发送请求时会对我的API密钥中的字符进行编码。这导致API拒绝我的请求,因为它无法识别我的密钥。

如何阻止Axios编码我的GET参数?

1 个答案:

答案 0 :(得分:8)

您可以按如下方式使用自定义参数序列化程序:

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'
  }
});