首页 > 解决方案 > 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);
});

请求详情: 在此处输入图像描述

标签: javascriptnode.jsajax

解决方案


如果您不使用正文解析器,则正文将是一个缓冲区。

我们需要:

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 

以确保已安装。


推荐阅读