Я пытаюсь использовать fetch, чтобы зарегистрировать пользователей в списке Mailchimp, однако, похоже, что при использовании fetch я продолжаю сталкиваться с ошибками cors. Тем не менее, у меня нет проблем с использованием метода jQuery ajax, поэтому я знаю, что должно быть возможно воссоздать.
Следующее работает без нареканий
$(node).submit(function(e) {
e.preventDefault()
var $this = $(this);
$.ajax({
type: "GET", // GET & url for json slightly different
url: "http://xxxxxx.us8.list-manage.com/subscribe/post-json?c=?",
data: $this.serialize(),
dataType : 'json',
error : function(err) { alert("Could not connect to the registration server."); },
success : function(data) {
if (data.result != "success") {
// Something went wrong, parse data.msg string and display message
} else {
// It worked, so hide form and display thank-you message.
}
}
});
return false;
});
Хотя следующее не работает вообще ивозвращает ошибку cors. Здесь я пробовал много разных опций, но, похоже, не могу повторить то, что делает jQuery с fetch.
Кажется, что нет возможности получить заголовки запроса от jQuery Ajax, и у меня возникают трудности с репликацией запросаиспользуя fetch. Я пробовал довольно много разных вариантов, включая mode: 'no-cors'
, который не позволяет получить доступ к ответу.
fetch("http://xxxxxx.us8.list-manage.com/subscribe/post-json?c=?",{
method: 'GET',
headers: {
},
credentials: 'include',
}).then( r => {
console.log(r.json())
})
Я предполагаю, что проблема связана с заголовками, но я могу ошибаться. К сожалению, у меня нет возможности использовать API здесь, так как веб-сайт является магазином.