Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API

Mailchimp how to call mailchimp 3.0 API in javascript

我正在尝试将电子邮件订阅到 mailchimp 上的列表,我首先遵循了文档,使用 "Postman" 提出了一个请求,添加了所需的内容并且一切正常,所以我尝试在我的网站无法正常工作

我尝试使用我在邮递员上设置的相同值发出一个简单的请求,但每次我尝试发送请求时,响应都显示

XMLHttpRequest cannot load https://us12.api.mailchimp.com/3.0/lists/xxxxxx/members. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://mywebsite.com' is therefore not allowed access. The response had HTTP status code 501.

我试图找到一种方法来克服这个问题,但这是不可能的

我在 Whosebug 上搜索过每个人都说使用 jsonp 或向 ajax 调用添加一些东西或使用 mailchimp ajax 插件没有任何效果

我尝试了不同的 Whosebug 帖子,比如这个 Mailchimp subscribe using jQuery AJAX? 但几乎所有人都这么说

我试过了cache: falsedataType:jsonpcrossDomain: truexhrFields: {withCredentials: true}

这是我的代码,我正在使用 Jquery

$.ajax({
          type: "POST",
          url: "https://usxx.api.mailchimp.com/3.0/lists/xxxxxxxx/members",

          data: { "email_address":email@adress.com,  "status":"subscribed"},
          headers: {
            "Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==",
            "Content-Type": "application/json"
          },
          success: function(data){
             alert('Thanks for subscribing');
          },
          error: function(data){
            alert('there was an error, try again later');
          }
});

我也想创建自己的 api 然后调用 mailchimp api 但我可能 运行 遇到同样的问题

你有什么建议吗?

提前致谢

正如 charliefl 所指出的,这是一个 CORS 问题。 MailChimp 不支持 CORS,主要是因为它需要您将 API 凭据传递给网页用户,从而允许他们接管您的整个帐户。

MailChimp 的两个选项是通过服务器代理您的请求,或者为了让人们加入您的列表,您可以 build a custom signup form 使用更受限制的 API。第二种方法的警告是它会强制您的所有订阅通过 MailChimp 的双重选择加入流程。