如何为 mailchimp 的 Axios post 请求添加 API 键

How to add API key to Axios post request for mailchimp

我正在尝试设置 axios post 请求以将成员添加到受众群体列表,但我不知道如何添加 API 键(一直出现错误 401 : 'Your request did not include an API key.')。我在“授权”header 中尝试了很多东西,就像我在下面放的一样(还有:"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, just use the 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 基本身份验证headers 看起来像

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

其中 "Basic" 之后的字符串是 Base64 编码的 "username:password" 字符串。 Axios 提供了 auth 选项作为方便,因此您不需要自己对字符串进行编码。

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

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