参数对象(API 密钥)未与 axios.create 一起发送
Posted
技术标签:
【中文标题】参数对象(API 密钥)未与 axios.create 一起发送【英文标题】:params object (API key) not being sent with axios.create 【发布时间】:2019-11-05 17:53:37 【问题描述】:我正在使用 axios.create 实例向 MovieDB API 发出获取请求。我附加的包含 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 Unauthorized。
【问题讨论】:
我认为这不是语法问题。 401 表示不允许访问该资源。您可能还需要一个令牌来传递 API Attach Authorization header for all axios requests的可能重复 【参考方案1】:您可以为此使用 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
【讨论】:
以上是关于参数对象(API 密钥)未与 axios.create 一起发送的主要内容,如果未能解决你的问题,请参考以下文章