在我的CFM文件中,我有一个表单,我需要将其作为JSON发送。这是我第一次尝试将表单作为JSON数据发送。我查看了W3C HTML JSON form submission中的示例,但我没有看到如何指定json URL的示例。我看到表单的enctype属性必须设置为application / json,但这就是它。我需要知道在哪里指定jsonp URL,authkey以及提交到正确位置所需的其他参数。由于我正在使用ColdFusion,我不确定是否应继续使用ColdFusion标记进行JSON提交或Javascript和/或JQuery。任何建议都非常感谢。顺便说一下,authkey需要是私有的,因为这是一个帖子。以下是我到目前为止的表格。
远程API服务接受如下数据。因此,我需要在表单中指定一些方法来指定这些标准。
stdClass Object
(
[valid] => 1
[data] => stdClass Object
(
[id] => 54f126ed7cb82991627b23f0
[type] => comment
[project_id] => 54b88f0ffe775aac57000001
[article_id] => 54b88f12bfe5a1601400001c
[author_id] => 52d9a8dbfe775ad80d000001
[content] => I'm a comment!
[public_name] =>
[public_email] =>
[user_submitted] => 1
[date_created] => 02/27/2015 9:24 pm EST
)
)
好的,看起来我必须在向自己提交表单之前构建JSON string并执行CFHTTP标记来发送JSON数据。以下是我到目前为止:
<cfset jsonString ={
data = {
article_id = "#artID#",
type = "comment",
project_id = "55c4ffd123131c527e294fe6",
content = "#form.message#",
public_name = "#form.name#",
public_email = "#form.mailfrom#"
}
}>
<cfhttp url="https://app.kb.com/api/head/comment.json" method="post" timeout="15" throwonerror="true" >
<cfhttpparam type="body" name="body"value="#serializeJSON(jsonString)#" />
</cfhttp>
然而,它不起作用。我还不完全清楚CFHTTPPARAM应该是什么,因为现在我手动将所有参数构建为字符串,而不是在CFHTTP标记内单独提交它们。非常感谢任何帮助。