我发现了一些很好的文章来指导我如何使用javascript发布JSON数据,这是最重要的一点:How can I use JQuery to post JSON data?。不幸的是,我仍然无法获得一个成功的职位。 这是我现在所拥有的,尽管我最终将需要用来自电子邮件输入字段的变量替换“[email protected]”。使用Javascript发布MailChimp JSON数据
<!-- ========== START Mail Signup PopUp ========== -->
<div id="popup-1" class="slickModal">
<div class="window">
<div class="wrap demo-1">
<div class="title">SAVE 15% TODAY</div>
<li>Exclusive Flash Sales</li>
<li>Giveaways</li>
<li>Free Shipping Coupons</li>
<li>and more!</li>
<br><br>
<input type="email" value="" id="popupEmail" class="required email field" placeholder="Your email goes here">
<input type="submit" value="submit" onclick="mcTest()">
<script>
function mcTest() {
$.ajax({
type: "POST",
url: "https://us13.api.mailchimp.com/3.0/lists/123456/members/",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({"email_address": "[email protected]","status": "subscribed"}),
success: function (data)
{
alert("success!") + data;
},
error: function()
{
alert("Cannot get data");
}
});
}
</script>
</div>
<div class="cta demo-1">
<span class="icon"></span>
</div>
</div>
</div>
<!-- ========== END Mail Signup PopUp ========== -->
我不断收到错误“无法获取数据”错误弹出窗口。我捆绑,为了获得字符串化功能的工作服务了json2.js文件,我测试过该呼叫为卷曲CMD也适用:
curl --request POST --url "https://us13.api.mailchimp.com/3.0/lists/123456/members/" --user "chris:123456789123456789-us13" --header "content-type: application/json" --data @C:\curl\mc.txt
如果是这种内容mc.txt文件:
{
"email_address": "[email protected]",
"status": "subscribed"
}
有关我在做什么错的任何想法?感谢您的任何帮助/建议!
如果你用某种开发工具运行这个/控制台可见你应该看到指示禁止跨域请求的错误。看看这里:http://stackoverflow.com/questions/21526408/mailchimp-subscribe-using-jquery-ajax#29443119为解释和可能的解决方法。 –
感谢您的快速回复@SlipperyPete!您链接的文章提供了解释,并且在使用其建议的解决方法时,我现在可以获得成功的POST响应,但数据不会显示在Mail Chimp中。我也发现这篇文章:http://stackoverflow.com/questions/5188418/jquery-ajax-post-not-working-with-mailchimp似乎表明我需要编写一个服务器端的帖子来正确集成。似乎奇怪的是,发布电子邮件订阅MailChimp的RESTful API并不是一种更简单的方法......以进行更多的研究! – Chris
这也是一篇关于如何解决这个问题的好文章,但它在PHP中,我的应用程序是asp.net:http://kovalent.co/blog/mailchimp-api-example/;我也试图完成这一点,而不必添加任何代码隐藏... – Chris