我定义了一个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'}
任何人都知道为什么?如果我希望后端接收这个空数组,我该怎么办?
答案 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);