【发布时间】:2016-11-07 17:52:30
【问题描述】:
我找到了一些很好的文章来指导我如何使用 javascript 发布 JSON 数据,这篇文章最中肯:How can I use JQuery to post JSON data?。不幸的是,我仍然无法获得成功的帖子。 这是我现在所拥有的,尽管我最终需要将“email@gmail.com”替换为电子邮件输入字段中的变量。
<!-- ========== 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@gmail.com","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 文件以使 stringify 函数工作,并且我已经将调用作为 cURL 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@gmail.com",
"status": "subscribed"
}
对我做错了什么有什么想法吗?感谢您的任何帮助/建议!
【问题讨论】:
-
如果您使用某种开发人员工具/可见的控制台运行此程序,您应该会看到指示禁止跨域请求的错误。看看这里:stackoverflow.com/questions/21526408/… 以获得解释和可能的解决方法。
-
感谢@SlipperyPete 的快速回复!您链接到的文章提供了解释,并且在使用他们建议的解决方法时,我现在得到了成功的 POST 响应,但数据没有显示在 Mail Chimp 中。我也找到了这篇文章:stackoverflow.com/questions/5188418/…,这似乎表明我需要编写一个服务器端帖子才能正确集成。似乎没有更简单的方法来发布订阅 MailChimp 的 RESTful API 的电子邮件......继续进行更多研究!
-
这也是一篇关于如何解决这个问题的好文章,但它是用 PHP 编写的,我的应用程序是 asp.net:kovalent.co/blog/mailchimp-api-example;我也试图在不添加任何代码隐藏的情况下实现这一点......
-
看看我刚刚发布的例子。)
标签: javascript json ajax post curl