问题描述
我正在尝试设置一个 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-Origin
和Access-Control-Allow-Headers
作为请求标头。这些只是响应标头。将它们添加到您的请求中很可能会导致更多 CORS 错误