2016-02-18 55 views
1

我想订阅我的Mailchimp列表这样Mailchimp阿贾克斯订阅列表

<form method="post" action="https://us10.api.mailchimp.com/2.0/lists/subscribe.json" id="mailChimpForm"> 
    <div class="col-lg-6 col-sm-6" data-scrollreveal="enter left after 0s over 1s" data-sr-init="true" data-sr-complete="true"> 
     <input type="text" name="FNAME" placeholder="Your name (optional)" class="form-control input-box"> 
    </div> 
     <input type="email" name="EMAIL" placeholder="Your email address" required="required" class="form-control input-box"> 
    </div> 
    <button class="btn btn-primary custom-button green-btn" type="submit" data-scrollreveal="enter right after 0s over 1s" data-sr-init="true" data-sr-complete="true">Sign me up!</button> 
</form> 

Ajax代码是这样的

$('#mailChimpForm').submit(function (e) { 
    e.preventDefault(); 

    var payload = { 
     "apikey": "------------", 
     "id": "244169", 
     "email": { 
      "email": "[email protected]" 
     }, 
     "send_welcome": false 
    }; 
    payload = JSON.stringify(payload); 

    console.log($(this).attr('action')) 

    $.ajax({ 
     url: $(this).attr('action'), 
     type: 'POST', 
     data: payload, 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function (error) { 
      console.log(error); 
     } 
    }); 
}); 

但我得到这个错误

https://us10.api.mailchimp.com/2.0/lists/subscribe.json 。请求的资源上没有“Access-Control-Allow-Origin”标头

任何人都可以通过告诉我我做错了什么,以此指向正确的方向吗?

回答

0

你不能这样做,因为这个东西叫CORS。而且,在面向客户端的代码中包含私有API密钥通常是不好的做法,就像你写的这个Javascript一样。

我想看看像AjaxChimp这样的图书馆。我希望你不需要这个答案,你可以弄明白,但是对于所有其他人......