我正在尝试将用户的电子邮件添加到我的Mailchimp 3.0听众列表中。我正在使用JQuery发出GET请求,但出现以下错误:
{"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"API Key Invalid","status":401,"detail":"Your request did not include an API key.","instance":"1e63d45d-2f46-481f-a674-3c307033cd29"}
点击我的按钮触发请求后,就会发生此错误。
这是我的HTML代码中JQuery脚本要从中提取的部分:
<form **action="https://us4.api.mailchimp.com/3.0/lists/8a99d9c7eb/members/>"**
method="get" **id="mc-embedded-subscribe-form"** name="mc-embedded-subscribe-form" class="validate">
<p class="signUp mt-5">
We are currently Beta testing our service and will reveal more
soon. Enter your email address below to receive updates.
</p>
<div class="form-label-group">
<input type="email" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="form-control"
placeholder="Email address" required autofocus>
</div>
<input type="submit" value="Notify me" name="subscribe" id="mc-embedded-subscribe" class="btn btn-sm btn-success mt-1 shadow-lg">
<div id="subscribe-result"></div>
<!-- <button class="btn btn-sm btn-success mt-1 shadow-lg" id="submitInfo"
type="submit">Notify
Me</button> -->
</form>
这是我的JQuery代码:
$(document).ready(function () {
var $form = $('#mc-embedded-subscribe-form')
if ($form.length > 0) {
$('form input[type="submit"]').bind('click',function (event) {
if (event) event.preventDefault()
register($form)
})
}
})
function register($form) {
$('#mc-embedded-subscribe').val('Sending...');
$.ajax({
type: $form.attr('method'),url: $form.attr('action'),data: $form.serialize(),status: "unsubscribed",headers: {
'Authorization': 'Basic ' + new Buffer(`anything': 'apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-usx`)
},cache: false,dataType: 'json',contentType: 'application/json; charset=utf-8',error: function (err) {
alert('Could not connect to the registration server. Please try again later.')
},success: function (data) {
$('#mc-embedded-subscribe').val('subscribe')
if (data.result === 'success') {
// Yeahhhh Success
console.log(data.msg)
$('#mce-EMAIL').css('borderColor','#ffffff')
$('#subscribe-result').css('color','rgb(53,114,210)')
$('#subscribe-result').html('<p>Thank you for subscribing. We have sent you a confirmation email.</p>')
$('#mce-EMAIL').val('')
} else {
// Something went wrong,do something to notify the user.
console.log(data.msg)
$('#mce-EMAIL').css('borderColor','#ff8282')
$('#subscribe-result').css('color','#ff8282')
$('#subscribe-result').html('<p>' + data.msg.substring(4) + '</p>')
}
}
})
};
我尝试使用Fetch和AJAX发出此请求,但没有雪茄。这种方法帮助我取得了进步,但是遇到了这个小问题。我已经审查了以下问题和解答,以寻求更多支持:
Javascript + MailChimp API subscribe
AJAX Mailchimp signup form integration Access MailChimp API 3.0 (GET)
最后,这是MailChimp API文档。
Add a Contact to a List/Audience (1 paragraph)
Add a new list member (search on "Add a new list member")
HTTP Basic Authentication(fourth paragraph)
谢谢您的帮助!