通过 HTML 表单 + JavaScript 向 MailChimp API 提交 JSON 结构

Posted

技术标签:

【中文标题】通过 HTML 表单 + JavaScript 向 MailChimp API 提交 JSON 结构【英文标题】:Submitting JSON struct to MailChimp API via HTML form + JavaScript 【发布时间】:2014-07-28 00:22:25 【问题描述】:

感谢您对我确信这是一个真正的基本打击的帮助。我正在设置一个简单的 Web 前端,以便我可以检查电子邮件地址是否已经是现有 MailChimp 列表的订阅者。现在我只想使用基本的 htmljavascript

我的 MailChimp API 密钥已检出,我可以运行只需要字符串数据的查询,但相关的 API 调用需要电子邮件地址的结构,并且我在以下代码的任何变体中不断收到错误。我已经安装了 node.js 并且只是从命令行运行它并且查询确实使用相同的数据,所以我确定我只是 this 关闭,但需要帮助您克服困难。

这里是脚本和表单的相关sn-p。正如所写,我收到以下错误消息作为回复:验证错误:\“电子邮件\”:\“请输入结构\/关联数组\“”

<script type="text/javascript">
function collectAndSubmit() 
        var emailAddy = document.getElementById("emailAddy").value;
        var JSONemail = "email":
                            
                                "email": emailAddy
                            
                        ;
        document.getElementById("email").value = JSONemail;
        document.getElementById("apikey").value ="M*Y*A*P*I*K*E*Y"
        document.testform.submit();

</script>
</head>
<body>
<form action="https://us2.api.mailchimp.com/2.0/helper/lists-for-email" method="post" name="testform">
    Email Address: <input type="text" id="emailAddy" name="emailAddy" />
    <input type="hidden" id="apikey" name="apikey" />
    <input type="hidden" id="email" name="email" />
    <br>
    <input type="button" value="Check Email" onclick="collectAndSubmit()" />
</form>
</body>
</html>

提前感谢您的帮助。

【问题讨论】:

更正/功能代码片段减少了很多,因为电子邮件数据现在可以直接从表单中直接传递,而不是在 javascript 中组装。这是更正的输入表单条目:电子邮件: 【参考方案1】:

您的表格不正确。你可以看看他们的documentation。您必须设置他们所谓的email struct,这实际上是一个数组。您的电子邮件输入属性应类似于 &lt;input type="text" id="email" name="email[email]"&gt;

注意email[email],它将使数据看起来像"email": "email": "input value"

此外,如果您的 api 密钥应该是秘密,那么将其隐藏在 html 表单中并不是一个好主意。

【讨论】:

非常感谢——这就是问题所在;我一直在阅读他们的文档,只是不知道如何传递结构。我将使用更正的版本更新原始帖子中的代码片段。如果您可以再花点时间进行跟进,您提到将确实应该是私有的 api 密钥作为隐藏字段放置不是一个好主意,我绝对同意。在这个基本设置中最好的选择是什么,或者我真的需要以某种方式在服务器端处理这个? @Bret 是的,如果 api 密钥是秘密的,它必须存在于服务器端。因此,您的服务器端语言将创建 api 调用,您的表单只需提交到您的服务器。

以上是关于通过 HTML 表单 + JavaScript 向 MailChimp API 提交 JSON 结构的主要内容,如果未能解决你的问题,请参考以下文章

jQuery序列化表单

通过 JavaScript 强制 HTML 表单验证

HTML javascript 表单 - 我可以通过哪些其他方式使用表单验证来编写这个 javascript 函数

html 通过表单向bcls-proxy提交API请求的示例代码

通过 XMLHttpRequest 从 JavaScript 向 PHP 发送数据

使用javascript发送请求时中止链接和表单提交