params对象(API密钥)未与axios.create一起发送

时间:2019-06-23 21:26:28

标签: reactjs react-redux axios

我正在使用axios.create实例向MovieDB API发出get请求。我要附加的包含API密钥的params对象未随请求一起发送。

使用axios.get而不是axios.create时,请求工作正常。

import axios from "axios";

export default axios.create({
  baseURL: "https://api.themoviedb.org/3",
  params: {
    api_key: MY_API_KEY
  }
});

我收到错误代码401未经授权。

1 个答案:

答案 0 :(得分:0)

您可以为此使用paramsSerializer:

export const client = Axios.create({
    baseURL: process.env.API_URL,
    paramsSerializer: (params) => {
        const serializedParams = qs.stringify(params, {arrayFormat: 'repeat'});
        return `${serializedParams}&APPID=${process.env.API_KEY}`;
    }
});

在执行此操作之前,请确保您需要安装qs

  

npm i qs