我正在尝试将一些数据从HTML表单发布到form服务器。要求是,POST数据应该是JSON数据。来自服务器的预期JSON是
{
"version": "1.0.1",
"sensors": [
{
"sensor": "sensorID",
"output": [
{
"name": "sensorName",
"type": "sensorType"
}
]
}
]
}分别是sensorID、sensorName、sensorType对应的来自HTML表单的输入字段。其他人应该是这样的。我的代码是:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<h2>Create Sensor</h2>
<form id="form">
<form enctype='application/json'>
<input name='version' value='1.0.1'>
<input name='sensors[0][sensor]' value=''>
<input name='sensors[0][output][0][name]' value=''>
<input name='sensors[0][output][0][type]' value=''>
<br>
<input id="input" type="submit" name="submit" value="Create Sensor" />
</form>
<script>
$.ajaxSetup({
contentType: "application/json; charset=utf-8",
dataType: "json"
});
$(document).ready(function () {
$('#input').click(function () {
var send = JSON.stringify($("#form").serializeArray());
alert(send);
$.ajax({
url: "http://posttestserver.com/post.php",
type: "POST",
data: send,
success: function (send, status, jqXHR) {
alert(JSON.stringify(send));
},
error: function (jqXHR, status) {
alert(JSON.stringify(jqXHR));
}
});
return false;
});
});
</script>
</body>
</html>我有这样的输出:
[{
"name": "version",
"value": "1.0.1"
}, {
"name": "sensors[0][sensor]",
"value": ""
}, {
"name": "sensors[0][output][0][name]",
"value": ""
}, {
"name": "sensors[0][output][0][type]",
"value": ""
}]有谁能帮帮我吗?我在努力尝试。但由于我是新手,可能遗漏了一些东西,这就是为什么不能解决这个问题。这将对我非常有帮助,如果有人能在这方面指导我。提前谢谢。
发布于 2014-08-13 15:28:13
形成您自己的JSON,而不是使用$("#form");,比如
var sensorArr=new Array();
//push your values to SensorArr
var data= {
"version": $("input[name='version']").val(),
"sensors": [
{
"sensor": "sensorID",
"output": sensorArr;
}
]
}并将此data发送到AJAX
https://stackoverflow.com/questions/25280241
复制相似问题