javascript - Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API

标签 javascript jquery ajax cross-domain mailchimp

我正在尝试将电子邮件订阅到 mailchimp 上的列表,我首先遵循了文档,使用“ postman ”提出了一个请求,添加了所需的内容并且一切正常,所以我尝试在我的网站上进行操作并且它没用

我试图用我在 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.

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

我在 stackoverflow 上搜索过,每个人都说要使用 jsonp 或向 ajax 调用添加一些东西,或者使用 mailchimp ajax 插件,但都没有用

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

我试过 cache: false dataType:jsonp crossDomain: true xhrFields: {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 的双重选择加入流程。

关于javascript - Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493837/

相关文章:

javascript - 使用 Javascript 的动态 HTML : Fill same HTML object with different contents

ajax - 对 Controller 的简单 AJAX 请求 - Symfony3

php - 如何从点击链接时调用的 JS 调用 PHP 函数?

javascript - ajax:本地服务器没有数据

jquery - 如何为单个函数引用两个 div 元素?

javascript - jQuery 源代码中的 returnTrue 和 returnFalse 函数

javascript - Angular2 [routerLink] 构建失败

javascript - Object.keys在IE11中工作的解决方法是什么?

javascript - jQuery Ajax 两个相同的函数适用于其中一个而不适用于另一个

jquery - 如何使用 getter 方法实现 jQuery 插件?