Использование fetch для регистрации пользователей в списке mailchimp - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь использовать 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 здесь, так как веб-сайт является магазином.

...