【发布时间】:2019-07-31 18:52:42
【问题描述】:
不知何故,我意识到当我将数字数组传递给后端 expressjs 时,我会得到字符串数组而不是数字。
这是发送数据的ajax代码
$.ajax({
method: 'post',
url: this.url.ajax.send,
data,
})
这是我在前端传递给后端的值
const data = {
"type": [
1,
2
],
"to": [
0
],
"message": "testing message here"
}
这是我在后端req.body得到的
{ type: [ '1', '2' ],
to: [ '0' ],
message: 'testing message here' }
我确实有 bodyParser 这样的设置
app.use(bodyParser.urlencoded({
extended: true,
parameterLimit: 2000000, // too many parameter if not set
limit: 1024 * 1024 * 10 // entity too large if not set
}));
app.use(bodyParser.json({
extended: true,
parameterLimit: 2000000, // too many parameter if not set
limit: 1024 * 1024 * 10 // entity too large if not set
}));
这是正常现象还是有什么办法可以解决?
【问题讨论】:
-
你能说明你是如何发送数据的吗?
-
尝试使用 Postman(或 curl)向您的后端发出类似的请求,如果仍然发生,请告诉我。
-
@MohammedAmirAnsari 编辑,一个 jquery ajax 调用
-
@UtkarshPramodGupta 我的错,我用邮递员做了测试,用邮递员测试后端读取为数字数组很好。但是我在上面为
const data =发布的内容是我console.log在ajax之前调用的值 -
@Dora 不要使用console.log,使用浏览器的开发工具检查网络请求实际发送到后端的内容。
标签: javascript arrays string express body-parser