将数据从客户端javascript发送到节点js

将数据从客户端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

问题是,我在将数据发送回node js时出错,每次我发送某些内容时,令牌似乎都会增加,因此某些内容会被发送回,但我不断收到错误

我用主体解析器从客户端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>
我希望将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)