一尘不染

jQuery Ajax POST无法与MailChimp一起使用

ajax

我使用以下代码将数据发送到MailChimp新闻列表(API v3)。每次我type: POST从函数中删除时,它都会尝试通过GET发布数据,并正确发送数据(在MailChimp
API仪表板中可以确定响应)。在浏览器(FF)中进行测试时,我得到一个响应为“ true”的.part文件。

   $(function(){
     $("a#test").click(function(e){
       e.preventDefault()  
       data = {
         "apikey" : "667378947", 
         "id" : "90298590285", 
         "email_address" : "test@getmoxied.net", 
         "output" : "json"
       }

  $.ajax({ 
    type: "POST",
    url: 'http://us2.api.mailchimp.com/1.3/?method=listSubscribe',
    data: data,
    success: function(data){
      alert(data);
    },
    error: function(){
      alert("err");
    }
  })       
 });
});

我将我的头发拔了出来,任何见识都将受到赞赏。

提前致谢,

JN


阅读 284

收藏
2020-07-26

共1个答案

一尘不染

主要问题是jc在您的原始帖子中评论了什么-由于Same Origin
Policy问题,这根本行不通。Firebug对于GET调用失败的原因并不那么明确,但这就是为什么它不返回任何数据的原因。如果通过POST观看,您将看到Firefox甚至没有拨打电话。另一方面,Chrome浏览器的js控制台直接向您说明了同源起源政策。

总而言之,这是一件非常好的事情,如果没有其他原因,这会阻止您公开发布帐户的API密钥,这是一件非常糟糕的事情。如果没有立即发现问题的原因,请仔细阅读API中提供的大量方法,然后意识到访问它们所需要的就是该API密钥。

正确的方法是将数据POST回服务器,然后从那里发出请求。有几个完全建立PHP的例子(使用一个jQuery的,甚至),在这里

2020-07-26