如何向mailchimp的Axios post请求添加API密钥

问题描述

我正在尝试设置一个 axios 发布请求以将成员添加到受众列表,但我不知道如何添加 API 密钥(不断出现错误 401:'您的请求不包含 API 密钥.')。我在“授权”标题中尝试了很多东西,就像我在下面放的一样(还有:"Bearer ${mailchimpKey}""${mailchimpKey}""Bearer ${mailchimpKey}""Basic ${mailchimpKey}",可能还有更多...).

我也不知道“用户名”是什么,但是当我在别处测试 API 时,“任何”都有效。

有人知道我应该如何设置吗?

axios
.post(
  `https://${server}.api.mailchimp.com/3.0/lists/${list_id}/members`,{
    email_address: email,status: "subscribed",},{
    "User-Agent": "Request-Promise",Connection: "keep-alive",Authorization: `Basic any:${mailchimpKey}`,// Testing on localhost
    "Access-Control-Allow-Origin": "*","Access-Control-Allow-Headers": "Content-Type",}
)

解决方法

如果您打算使用 HTTP Basic authentication,只需使用 Axios auth config option

axios.post(
  `https://${server}.api.mailchimp.com/3.0/lists/${encodeURIComponent(list_id)}/members`,{
    email_address: email,status: "subscribed",},{
    auth: {
      username: "anystring",password: mailchimpKey
    },headers: { // personally,I wouldn't add any extra headers
      "User-agent": "Request-Promise"
    }
  }
)

HTTP Basic auth headers 看起来像

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

"Basic" 后面的字符串是 Base64 编码的 "username:password" 字符串。 Axios 提供了 auth 选项以方便使用,因此您无需自己对字符串进行编码。

您遇到的其他一些问题是:

  • headers 配置选项之外添加请求标头
  • 尝试发送 Access-Control-Allow-OriginAccess-Control-Allow-Headers 作为请求标头。这些只是响应标头。将它们添加到您的请求中很可能会导致更多 CORS 错误

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...