参数对象(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 一起发送的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2如何在没有密钥的情况下连接?

asp.net 中的模拟未与 com 对象共享

调用 API:如何提供这些参数(密钥、随机数和签名)

elastichead 未与 elasticsearch docker 容器连接

axios与axios.create()的区别

如何在 EC2 上集成 AWS 参数存储以使用 Python 代码加密令牌/API 密钥? [关闭]