将数据从客户端javascript发送到节点js
问题是,我在将数据发送回node js时出错,每次我发送某些内容时,令牌似乎都会增加,因此某些内容会被发送回,但我不断收到错误 我用主体解析器从客户端javascript向节点js发送post请求 这是客户端代码将数据从客户端javascript发送到节点js,javascript,html,node.js,Javascript,Html,Node.js,问题是,我在将数据发送回node js时出错,每次我发送某些内容时,令牌似乎都会增加,因此某些内容会被发送回,但我不断收到错误 我用主体解析器从客户端javascript向节点js发送post请求 这是客户端代码 <dl> {{#each this}} <dd> <a href="topic.hbs" onclick="getRoomId({{room_id}})">{{room_name}}</a> &l
<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>
我希望将id发送回node 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)
SyntaxError:JSON中位于位置0的意外标记1
在JSON.parse()处
在createStrictSyntaxError(/Users/Ben255/Desktop/webprojekt/Forum/node_modules/body parser/lib/types/json.js:158:10)
解析时(/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
在invokeCallback(/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw body/index.js:224:16)
完成时(/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw body/index.js:213:7)
在IncomingMessage.onEnd(/Users/Ben255/Desktop/webprojekt/Forum/node_modules/raw body/index.js:273:7)
在IncomingMessage.emit(events.js:203:15)
在endReadableNT(_stream_readable.js:1145:12)
在进程中。_tick回调(内部/process/next_tick.js:63:19)
所以你的问题是你在尝试JSON。字符串化一个数字,它返回一个数字。在控制台中,输入JSON.stringify(5)
,它将返回5
您需要发送一个JSON对象,因为这是您在编写xhr.setRequestHeader('Content-Type','application/JSON')时告诉服务器要发送的对象代码>。因此,与此相反:
xhr.send(JSON.stringify(id))代码>
试着这样做:
xhr.send(JSON.stringify({id:id})
它将发送“{id:5}”
开始使用Fetch API()而不是XMLHttpRequest谢谢,我对这个web开发的东西还是很陌生,但这解决了它:D
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)