javascript - NodeJS Ajax 未传递数组,错误:“位置 0 处 JSON 中的意外标记 u”
问题描述
我正在尝试将带有 javascript 的数组传递给 node.js 中的服务器,但我收到此错误:
位置 0 处 JSON 中的意外标记 u
我查看了这个错误代码并发现这是因为我正在使用 Json 来解析未定义的内容。我一定不能正确地将数组传递给服务器。我究竟做错了什么?这是我的代码:
客户端:
function ClientSide()
{
var info = [];
info[0] = 'hi';
info[1] = 'hello';
var json = JSON.stringify(info); //convert to json
$.ajax({
type: 'post',
url: '/save',
data: json,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (html) {
}
})
}
服务器端:
app.post('/save', function(req,res)
{
var Passed_value = JSON.parse(req.body);
console.log(Passed_value);
});
解决方案
如果您不使用正文解析器,则正文将是一个缓冲区。
我们需要:
https://github.com/expressjs/body-parser#bodyparsertextoptions
所以试试:
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post('/save', function(req,res)
{
var Passed_value = req.body;
console.log(Passed_value);
});
当然,你需要
npm install body-parser
以确保已安装。
推荐阅读
- hyperledger-fabric - 了解区块链(Hyperledger Fabric)概念
- javascript - 如何设置onclick验证javascript的条件
- entity-framework - ASP.NET Core Entity Framework 连接字符串超过 1 个登录用户
- python - pytorch中的坐标图像识别
- apache-spark - 将 Spark 作业远程提交到独立集群
- java - 在 Java 开发过程中如何正确绕过 reCAPTCHA
- python - 不知道为什么会这样?
- http - 如果客户端发送连接关闭标头,服务器是否可以与有效负载产生共鸣?
- python-3.x - 我需要创建一个 pyspark UDF,它通过比较从查询中输出一个表
- javascript - 将mysql查询行存储在变量中以供以后在另一个mysql查询中使用