您好, 我的解析函数有一个非常烦人的问题。我从我的websocket服务器收到一个JSON字符串(我很确定)。我已经在线验证了它,但在使用我的脚本解析时仍然出现“无效令牌”错误。
然而,如果我手动插入功能,一切都很完美。我的字符串出了什么问题?
function parseSocketMsg(msg){
var obj = jQuery.parseJSON(msg);
$.each(obj, function(i, item){
var rec = getRect(item.id);
rec.x = item.x;
rec.y = item.y;
});
}
function connect(){
var host = "ws://localhost:8080/scrabble/server.php";
try{
socket = new WebSocket(host);
print("Connected. Awaiting Handshake...");
socket.onopen = function(msg){
if(!ctx){
init();
}
print("Connection established - status "+this.readyState);
};
socket.onmessage = function(msg){ parseSocketMsg(msg.data); };
socket.onclose = function(msg){ print("Connection Lost! Reconnecting..."); connect(); };
}
catch(ex){}
}
答案 0 :(得分:4)
最近有一个类似的问题,问题是在字符串的开头和结尾有一个意外的空字符。
我建议您以十六进制形式转储您要解析的内容的确切内容,目视检查并不总是在字符数据中显示奇怪。
答案 1 :(得分:0)
你有var host = "ws://...
这可能是问题吗?你确定收到了什么吗? (记录/打印/无论你得到什么)。我想你正在阅读服务器中的日志,并假设你的js正在获取它。