Java脚本 - 隐藏表单字段中的JSON

时间:2017-03-23 12:00:14

标签: javascript json

是否可以发送带有JSON内容的POST,它来自隐藏的表单字段?

我的表单如下:

<form method="POST" name="form0" action="https://my_url/comment/id?Id=5">
<input type="hidden" name="id" id="inputField" value='{"number":5,"content":"aaaa"}'/> 
</form>

我想发送带有{“number”:5,“content”:“aaaa”}的POST作为JSON而不是字符串。 如果我使用:

document.forms[i].submit();

它以字符串形式发送。

2 个答案:

答案 0 :(得分:0)

HTML表单只能将数据编码为application/x-www-form-urlencodedmultipart/form-datatext/plain(后者没有任何实际用途)。

您现有的代码将对其中的JSON进行编码。

如果您要发送application/json已编码的表单正文,则需要使用XMLHttpRequestfetch

例如:

var xhr = new XMLHttpRequest();
xhr.open("POST", "/path/to/handler");
xhr.setRequestHeader("Content-Type", "application/json"); 
xhr.send(JSON.stringify({"number":5,"content":"aaaa"}));

答案 1 :(得分:-2)

是的,你可以这样做。但是你需要在服务器端解码它,因为它只是作为字符串传输。

使用jQuery,这将非常容易实现:

$.post('https://my_url/comment/id?Id=5', {"number":5,"content":"aaaa"}); 

你甚至可以通过一个回调来对任何返回的内容做出反应:

$.post('https://my_url/comment/id?Id=5', {"number":5,"content":"aaaa"}, function (response){
    // Do something cool here.
});