当我从Ajax调用中获取nodejs
中的发布数据时,它可以显示在console.log
中,但是当我想将其分配给另一个变量时,或者只是在页面上显示时,它会转到{ {1}}。
为什么这样?
[object, object]
$.ajax({
type: "POST",
url: 'http://127.0.0.1:5075/testEditmode.html',
'Content-Type': 'application/x-www-form-urlencoded',
data: info2value + '|' + colorvalue + '|'
});
var express = require('express');
var app = express();
var bodyParser = require('body-parser')
app.use(express.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/testEditmode.html', function (req, res) {
// console.log(req.body);
requestData = '';
requestData += req.body;
console.log(requestData.toString());
// console.log(req.body);
var splited = requestData.split("|");
var splitedCoords = requestData.split(",");
但Request data = [object, object]
显示应该显示的内容。 console.log(req.body)
没有帮助。
我该怎么办?
答案 0 :(得分:1)
jQuery请求中的命名空间data
:
$.ajax({
type: "POST",
json: true, // added this
url: 'http://127.0.0.1:5075/testEditmode.html',
'Content-Type': 'application/x-www-form-urlencoded',
data: {infoValue: info2value + '|' + colorvalue + '|'}
});
然后你可以这样做:
requestData = '';
requestData += req.body.infoValue;
如果你使用body-parser
中间件,你告诉express要解析请求的正文,现在req.body
是一个对象,所以你实际上在做:
var requestData = '' + {}; // "[object Object]" - Same as obj.toString()
并没有真正改变req.body
,这就是为什么req.body
仍然是一个对象。