JSON空数组条目消失了

时间:2016-01-18 00:53:07

标签: javascript json node.js

我定义了一个JSON,并将其发布到后端(Node.js)。

var imj = {};
imj.images = [];
$.post("/image/uploadImages", imj, function(feedback){
.....

然而,后端收到的是

{}

“图片”条目消失了。

这是后端代码:

exports.uploadImages = function(req, res) {
    if (typeof req.body.images == 'undefined') {
        return res.json({
            code: 1,
            message: "parameter incomplete"
        })
    }
    .....

所以后端返回错误{code:1,message:'parameter incomplete'}

任何人都知道为什么?如果我希望后端接收这个空数组,我该怎么办?

2 个答案:

答案 0 :(得分:0)

contentType nodeJS在后端期待什么? contentType方法的默认$.post application / x-www-form-urlencoded 。如果您的端点正在寻找 application / json ,您将始终看到空输入。

答案 1 :(得分:0)

$.post发送网址编码数据,因此您需要使用$.ajax并指定内容类型以及JSON字符串化数据。

var data = {};
data.images = [];

$.ajax({
    url: '/image/uploadImages', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify(data)
}).done(function(data) {
  console.log(data); // { images: [] }
});

在服务器端,请确保使用正文解析器。

var app = require('express')();
var bodyParser = require('body-parser');

app.use(bodyParser.json());

app.post('/', function (req, res, next) {
  console.log(req.body); // { images: [] }
  res.json(req.body);
});

app.listen(9000);