问题是我在将数据发送回节点 js 时遇到错误,每次我发送一些东西时,令牌似乎都会增加,所以有些东西被发送回来,但我不断收到错误消息。我使用 body-parser 从客户端 javascript 向节点 js 发送一个 post 请求这是客户端代码<dl> {{#each this}} <dd> <a href="topic.hbs" onclick="getRoomId({{room_id}})">{{room_name}}</a> </dd> {{/each}}</dl><script> function getRoomId(id){ var xhr = new XMLHttpRequest(); xhr.open('POST', 'topic.hbs'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify(id)); }</script>这是节点js代码const bodyParser = require('body-parser')app.use(express.static('./'));app.use(bodyParser.json());app.post('/topic.hbs', function(req, res){ console.warn('body: ', req.body); res.render('topic.hbs')});我希望将 id 发送回节点 js,但不断收到此错误。SyntaxError: Unexpected token 1 in JSON at position 0 at JSON.parse (<anonymous>) at createStrictSyntaxError (/Users/Ben255/Desktop/webprojekt/Forum/node_modules/body-parser/lib/types/json.js:158:10) at parse (/Users/Ben255/Desktop/webprojekt/Forum/node_modules/body-parser/lib/types/json.js:83:15) at /Users/Ben255/Desktop/webprojekt/Forum/node_modules/body-parser/lib/read.js:121:18 at invokeCallback (/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw-body/index.js:224:16) at done (/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw-body/index.js:213:7) at IncomingMessage.onEnd (/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw-body/index.js:273:7) at IncomingMessage.emit (events.js:203:15) at endReadableNT (_stream_readable.js:1145:12) at process._tickCallback (internal/process/next_tick.js:63:19)
1 回答
![?](http://img1.sycdn.imooc.com/545863aa00014aa802200220-100-100.jpg)
慕勒3428872
TA贡献1848条经验 获得超6个赞
所以你的问题是你试图 JSON.Stringify 一个数字,它返回一个数字。在您的控制台中,输入JSON.stringify(5)
,它将返回5
.
您需要发送一个 JSON 对象,因为这就是您在编写xhr.setRequestHeader('Content-Type', 'application/json');
. 所以而不是这个:
xhr.send(JSON.stringify(id));
尝试这样的事情:
xhr.send(JSON.stringify({id: id})
这将发送"{"id":5}"
.
添加回答
举报
0/150
提交
取消