Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API
Posted
技术标签:
【中文标题】Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API【英文标题】:Mailchimp how to call mailchimp 3.0 API in javascript 【发布时间】:2016-09-26 09:42:57 【问题描述】:我正在尝试将电子邮件订阅到 mailchimp 上的列表,我首先按照文档进行操作,使用“邮递员”提出请求,添加了所需内容,一切正常,所以我尝试在我的网站上完成它没用
我尝试使用我在邮递员上设置的相同值发出一个简单的请求,但每次我尝试发送请求时,响应都会显示
XMLHttpRequest 无法加载 https://us12.api.mailchimp.com/3.0/lists/xxxxxx/members。回复 预检请求未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“https://mywebsite.com” 使用权。响应的 HTTP 状态代码为 501。
我试图找到一种方法来克服这个问题,但这是不可能的
我在 *** 上搜索了每个人都说要使用 jsonp 或在 ajax 调用中添加一些东西或使用 mailchimp ajax 插件,但没有任何效果
我尝试了不同的 *** 帖子,比如这个 Mailchimp subscribe using jQuery AJAX? 但几乎所有人都这么说
我试过cache: false
dataType:jsonp
crossDomain: true
xhrFields: withCredentials: true
这是我的代码,我正在使用 Jquery
$.ajax(
type: "POST",
url: "https://usxx.api.mailchimp.com/3.0/lists/xxxxxxxx/members",
data: "email_address":email@adress.com, "status":"subscribed",
headers:
"Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==",
"Content-Type": "application/json"
,
success: function(data)
alert('Thanks for subscribing');
,
error: function(data)
alert('there was an error, try again later');
);
我也想过创建自己的 api,然后调用 mailchimp api,但我可能会遇到同样的问题
你有什么建议吗?
提前致谢
【问题讨论】:
请搜索该错误。这是 CORS 问题,每天都会多次询问这个问题。如果 API 未启用 CORS 或 jsonp,则需要在服务器上使用代理 @charlietfl 我到处搜索,但并非所有人都建议使用代理,谢谢您的评论 【参考方案1】:正如 charliefl 所说,这是一个 CORS 问题。 MailChimp 不支持 CORS,主要是因为它需要您将 API 凭据传递给网页的用户,从而允许他们接管您的整个帐户。
MailChimp 的两个选项是通过服务器代理您的请求,或者,为了让人们注册到您的列表,您可以使用更受限制的 API 的build a custom signup form。第二种方法的注意事项是,它强制您通过 MailChimp 的双重选择流程进行所有订阅。
【讨论】:
我看过你写的那篇文章,但是 jsonp 在 api 3.0 上不起作用,所以我唯一的选择是代理,谢谢你的帮助! 这是一个愚蠢的借口。还有其他电子邮件订阅服务和方法允许 CORS 交互而不暴露私钥。它们只需要构建和测试。 这不是借口,而是对相关系统的描述。当然,可以构建具有不同功能的不同系统,但这是 ***,而不是 MailChimp 功能请求网站,因此这里的答案旨在帮助提问者解决他们的问题。以上是关于Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API的主要内容,如果未能解决你的问题,请参考以下文章
MailChimp:为啥带有 javascript 的 PUT 方法返回“使用 PUT 插入或更新列表成员”
使用 Javascript AJAX(不是 jQuery)提交嵌入式 Mailchimp 表单