报错基本是这个样子的,unexpected token in json at position。
网上查询的解决方案实在是没解决我的问题。
我的错误原因是json数据格式错误。
问题背景是将json格式的数据以post请求的方式发送给nodejs服务器,服务器端解析报错。
发送的测试数据如下:
data = {first_name:"g",last_name:"h"};
上面这个是
错误的
。
正确的如下:
data = {"first_name":"g","last_name":"h"}
后文附服务器端代码和测试代码
【附】
服务器端
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.post('/test', function (req, res) {
console.log('req.body', req.body);
for(var x in req.body){
console.log(req.body[x]);
}
res.end("end");
});
app.listen(8888);
测试代码【测试代码我一直是直接敲在浏览器控制台 - -】
data = {"first_name":"g","last_name":"h"};
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
alert(xhr.responseText);
}
}
xhr.open("POST","/test",true);
xhr.setRequestHeader("Content-type","application/json");
xhr.send(JSON.stringify(data));
console.log(xhr.responseText);