当前位置: 首页 > 面试题库 >

Mailchimp如何在JavaScript中调用mailchimp 3.0 API

司寇凯
2023-03-14
问题内容

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

我试图用与邮递员相同的值发出一个简单的请求,但是每次尝试发送请求时,响应都说

XMLHttpRequest无法加载
https://us12.api.mailchimp.com/3.0/lists/xxxxxx/members。对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“
Access-Control-Allow-Origin”标头。因此,不允许访问源“
https://mywebsite.com ”。响应的HTTP状态码为501。

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

我在stackoverflow上进行了搜索,每个人都说要使用jsonp或向ajax调用中添加某些内容,或者使用mailchimp 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的两个选择是通过服务器代理您的请求,或者,为了将人们注册到您的列表中,您可以构建使用更为严格的API
的自定义注册表单。第二种方法的警告是,它通过MailChimp的双重选择加入过程强制您的所有订阅。



 类似资料:
  • 我试过FireBug Lite进行调试,但它不能调试JavaScript。 有没有办法调试加载到JavaFX的WebView中的javascaript?

  • 问题内容: 我有一个Java类:: 这给了我一个Json数组。现在,我想在JavaScript中一次又一次调用此类的method()以获得新值,因为我更新了我的数据库。我有一个数据网格,当页面首次加载此json数组中的一组值时,该网格运行良好。但是如何使用Ajax刷新数据。或者如何使用Ajax调用method()以便当我单击页面上的按钮时刷新数据。我在Java脚本中调用此方法的代码是:: 我在通过

  • 问题内容: 我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。 问题答案: 有一个hack: 绑定一些Java对象,以便可以使用WebView从Javascript调用它: 通过以下方式强

  • 问题内容: 有什么方法可以使用html属性调用多个JavaScript函数吗? 问题答案: onclick=”doSomething();doSomethingElse();” 但实际上,最好不要使用Java,而是通过Javascript代码将事件处理程序附加到DOM节点。这被称为不引人注目的javascript。

  • 所以我希望fxml文件中的这段代码实际上会调用sceneHandeler中的一个名为setBackground的方法,但它给了我一个错误:

  • 问题内容: 如何使用链接调用JavaScript代码? 问题答案: 要么 编辑: 上面的回答确实不是一个好的解决方案,自从我最初发布以来,已经学到了很多有关JS的知识.