我使用以下代码将数据发送到MailChimp新闻列表(API v3)。每次我type: POST从函数中删除时,它都会尝试通过GET发布数据,并正确发送数据(在MailChimp API仪表板中可以确定响应)。在浏览器(FF)中进行测试时,我得到一个响应为“ true”的.part文件。
type: POST
$(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
主要问题是jc在您的原始帖子中评论了什么-由于Same Origin Policy问题,这根本行不通。Firebug对于GET调用失败的原因并不那么明确,但这就是为什么它不返回任何数据的原因。如果通过POST观看,您将看到Firefox甚至没有拨打电话。另一方面,Chrome浏览器的js控制台直接向您说明了同源起源政策。
总而言之,这是一件非常好的事情,如果没有其他原因,这会阻止您公开发布帐户的API密钥,这是一件非常糟糕的事情。如果没有立即发现问题的原因,请仔细阅读API中提供的大量方法,然后意识到访问它们所需要的就是该API密钥。
正确的方法是将数据POST回服务器,然后从那里发出请求。有几个完全建立PHP的例子(使用一个jQuery的,甚至),在这里。