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

来源:互联网 发布:网游推荐知乎 编辑:程序博客网 时间:2024/06/05 02:08

报错基本是这个样子的,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);






阅读全文
0 0
原创粉丝点击