Я пытаюсь просто подписаться на адрес электронной почты с именем в список MailChimp. Я думал, что это должно быть очень легко, но я не могу опубликовать там почтовый адрес.Ajax вызов Mailchimp API 3.0 возвращает HTTP 501
Вы можете найти полный код здесь (ключ = authkey):
$(document).ready(function(){
$('#blogsignup').submit(function(event){
event.preventDefault();
$.ajax({
url : "https://us12.api.mailchimp.com/3.0/lists/247e2f0702/members/",
dataType : "json",
headers: { "Content-Type":"application/json", 'Access-Control-Allow-Origin': '*', "Accept": "application/json", "Authorization": "key-us12" },
type : 'POST',
contentType: "application/json",
data : {
apikey: "key",
email_address: $('#TBemail').val(),
status: 'subscribed',
merge_fields: {
FNAME: "subscriberFirstName",
LNAME: "subscriberLastName"
}
},
// Try to send also before
beforeSend: function(xhr) { xhr.setRequestHeader("Authorization",
"Basic " + btoa("api:" + "key-us12"));
},
success : function (data) {
$('#signup').html("Thanks for signing up. We will contact you as fast as possible.");
},
error : function (data, errorThrown) {
alert(errorThrown);
console.log(data);
}
});
});
});
Функция вызывается при нажатии на кнопку отправки. Я всегда получаю «ошибка» предупреждения и говорит
XMLHttpRequest не может загрузить https://us12.api.mailchimp.com/3.0/lists/247e2f0702/members/. Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Происхождение 'http://preprod.travelgap.io' поэтому не допускается.
Ответ был HTTP код статуса 501.
Я также пытался jsonp
, как Datatype тогда я получаю 401 ошибку. Authkey не прошел.
Необходимо использовать прокси-сервер на своем сервере. Вы не хотите, чтобы ваш api-ключ был открыт, и ни mailchimp – charlietfl
Сначала было бы неплохо, что его работа затем я могу реализовать прокси-сервер? – number005
Нужно заставить его работать на вашем сервере. API не поддерживает CORS для использования ajax – charlietfl