ajax post请求发送json数据报错unexpected token in json at position的问题解决

报错基本是这个样子的,unexpected token in json at position。

网上查询的解决方案实在是没解决我的问题。

我的错误原因是json数据格式错误

问题背景是将json格式的数据以post请求的方式发送给nodejs服务器,服务器端解析报错。

发送的测试数据如下:

data = {first_name:"g",last_name:"h"};
上面这个是 错误的

正确的如下:

data = {"first_name":"g","last_name":"h"}


之前曾经在某个地方看到过,json格式数据严格要求key的这个双引号,但是没实际踩坑,没记住。

后文附服务器端代码和测试代码

【附】

服务器端

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);






你可能感兴趣的:(项目问题记录,前端,ajax,json,nodejs,post)