【发布时间】:2015-05-23 18:51:52
【问题描述】:
我有一个登录表单,我想发送一个包含 json 的帖子。
这是我到目前为止所做的。
<form id="myForm">
Login
<input id="login" type="text" name="login" value=""/>
Password
<input id="password" type="password" name="password" value=""/>
<button type="submit" >Login</button>
</form>
还有我的js文件
$("#myForm").submit(function(event) {
var frm = $("#myForm");
var data = JSON.stringify(frm);
event.preventDefault();
$.ajax({
url: "/register/",
data: data,
type: "POST",
contentType: "application/json"
});
});
这里是 jsfiddle https://jsfiddle.net/p143s6tp/
我希望 json 看起来像这样:
{
"login" : "some_value",
"password" : "some_value"
}
但我得到了这个:
{"0":{"0":{},"1":{},"2":{}},"length":1,"context":{"location":{}},"selector":"#myForm"}
我阅读了一些人们使用 .serializeArray() 的主题,但结果我得到了单个对象的数组
【问题讨论】:
-
jQuery 对象上的
JSON.stringify()将字符串化 jQuery 对象,而不是来自表单元素的数据。 -
正如您自己所指出的,您必须使用
.serializeArray()返回名称和值的数组。然后您可以使用 Array 的方法将其转换为所需的格式
标签: javascript jquery json