用websocket传值到后台nodejs后JSON.parse报错

那这问题叫后台查:2:,一般不是前台的错了

"{“aa”:“11”,“cc”:“22”}"用JSON.parse是没问题的

奇怪的是我前台值"{“aa”:“11”,“cc”:“22”}"传到后台接收值却变为{“aa”:“11”,“cc”:“22”}

那这样有可能是传的过程做了什么操作,那你用"{aa:“11”,cc:“22”}"这个字符串试试

我前台无论是直接传"{“aa”:“11”,“cc”:“22”}",还是JSON.stringify({“aa”:“11”,“cc”:“22”})后再传,我后台收到的值都是{“aa”:“11”,“cc”:“22”},而且是string类,直接JSON.parse就报错,
这问题折磨我一天了,请大神帮我解答吧

"{aa:“11”,cc:“22”}"这个值,用前台传过来后台,一样变为{“aa”:“11”,“cc”:“22”},JSON.parse就报错

是不是后台写死了数据:sweat_smile:

没有呀,后台也就上面那些代码,不知道是不是websocket传值的bug

调试直接跟到parse里面,看看报错的原因是是啥

发生异常: Error
SyntaxError: Unexpected token H
at Object.parse (native)
at Connection. (d:\workspace\wetap_server\game\test1.js:8:24)
at emitOne (events.js:77:13)
at Connection.emit (events.js:169:7)
at Connection.processFrame (d:\workspace\wetap_server\node_modules\nodejs-websocket\Connection.js:621:9)
at Connection.extractFrame (d:\workspace\wetap_server\node_modules\nodejs-websocket\Connection.js:562:14)
at Connection.doRead (d:\workspace\wetap_server\node_modules\nodejs-websocket\Connection.js:254:23)
at Socket. (d:\workspace\wetap_server\node_modules\nodejs-websocket\Connection.js:66:8)
at emitNone (events.js:67:13)
at Socket.emit (events.js:166:7)

前后端的编码都是utf8么

client传给server的参数是对象还是字符串?

data已经是一个对象了,所以JSON.parse(data)会报错。

看看这个的输出
for(var k in data){ console.log(data[k])}