当我从 Ajax 调用中获取 nodejs
中的发布数据时,它可以显示在 console.log
中,但是当我想将其分配给另一个变量时,或者只需在页面上显示它就会变成[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)
显示它应该显示的内容。 toString()
没有帮助。
我该怎么办?
最佳答案
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
仍然是一个对象。
关于javascript - 发布 Ajax 并在 Node 中获取空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122812/