我发送一个简单的ajax-jQuery帖子请求:
$('#postButton').click (function () {
var empInfo = $('#empForm').serialize();
var empData = JSON.stringify(empInfo,null,2);
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'http://localhost:3000/post',
data: empData, // check how to stringfy to json and send() .
success: function(serverData){
$('.thankU').html(serverData);
}
});
我已经尝试了各种我知道的方法,以便在节点服务器上将数据转换为json格式:
app.post('/post', function(req, res){
// get query params as object
req.on('data', function(chunk) {
console.log("Received body data:");
console.log(chunk.toString());
console.log(JSON.parse(chunk) );
console.log(qs.parse(chunk) );
console.log(JSON.stringify(chunk));
});
});
结果是:
Received body data:
"bname=jjj&burl=jfjfj.com&bEmail=ff&bPhone=0608584884&fieldSelected=webPro"
bname=jjj&burl=jfjfj.com&bEmail=ff&bPhone=0608584884&fieldSelected=webPro
而不是它在开发者工具\ network中出现的方式:
"bname:jjj
burl:jfjfj.com
bEmail:ff
bPhone:0608584884
fieldSelected:webPro"
答案 0 :(得分:0)
尝试更改
dataType: 'JSON',
为:
dataType: 'json',
答案 1 :(得分:0)
jquery serialize method
从表单中创建一个编码字符串:http://api.jquery.com/serialize/
要获取json对象,请尝试使用serializeArray
http://api.jquery.com/serializeArray/。
或者手动创建json对象并读取每个表单元素'$().val()
值...
您的其他代码看起来很好,您必须对对象进行字符串化并将其发布到服务器。