1

我想要做的是在javascript中设置“位置”属性的功能等价物,但我想将JSON编码数据发送到服务器。我不想使用 AJAX,我想用服务器发回的任何内容完全替换我的页面内容。

我想我可以form.submit通过将表单enctype属性设置为来做我想做的application/json事情,但我不知道如何将我的 JSON 放入表单数据集中。是否有可能做到这一点?

4

3 回答 3

2

您可以将 JSON 作为 URL 的查询组件发送:

document.location.href = server_url + "?" + encodeURIComponent(json_string);
于 2013-05-09T23:00:17.940 回答
1

一种方法是使用这样的表单(不像您希望的那样干净,但如果您不想使用 AJAX,您的选择非常有限):

<form action="json.php" method="post">
    <input type="hidden" name="json" value="{'x':1}" />
</form>
于 2013-05-09T22:55:16.527 回答
0

您可以在提交表单时将输入值设置为字符串化 JSON:

<form method="post" action="myscript.php" onsubmit="DoSubmit();">
    <input type="hidden" id="myjsoninput" name="json" value="{'x':1}" />
    <input type="submit" name="submit" />
</form>

function DoSubmit(){
  document.getElementById("myjsoninput").value = JSON.stringify({a:'b'});
  return true;
}
于 2013-05-09T23:12:20.663 回答