【问题标题】:How to post JSON with hidden form html?如何使用隐藏表单 html 发布 JSON?
【发布时间】:2016-09-29 01:44:33
【问题描述】:

我正在尝试以 html 隐藏形式发布 JSON 对象。 我在后端准备了模型对象,并且能够在前端将其作为一个非常复杂的 JSON 对象获取,然后将其字符串化。现在我需要发布它。问题是我不确定如何在不循环所有属性的情况下将其转换为表单。

基本上我现在在我的 JavaScript 中有一个像这样的字符串:

str = {"language":"en","country":"GB","objectId":24639, ...}

我尝试使用“数据”参数,例如:

<form enctype='application/json' action=someUrl method="post" target="_blank" name="pdfSheetForm" id="pdfSheetForm" accept-charset="utf-8">
    <input type="hidden" value="${str}"  name="data">
</form>

没有用。我不确定是什么问题。目标是像 str 一样发布 JSON,而不是像数据一样:"{"language": ...}"

【问题讨论】:

  • 你要么需要使用模板引擎,要么必须循环遍历它
  • 你的str 变量不是字符串,试试$('#hiddeninput').setAttribute('value', document.encodeURIComponent(JSON.stringify(str)))
  • enctype application/json 被放弃了。尝试删除它,看看它是否正确发布。

标签: javascript html json


【解决方案1】:

您可以使用var str = JSON.stringify(your_object) 将您的 JSON 对象转换为一个简单的字符串,并且在您的后端您可以在收到该字符串时再次将该字符串解析为一个 JSON 对象。

然后使用pdfSheetForm.data.value = str 将对象数据作为字符串添加到表单中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2014-06-11
    相关资源
    最近更新 更多