【发布时间】:2011-03-09 19:01:08
【问题描述】:
我在我的 MooTools 脚本中运行 AJAX 调用,这在 Firefox 中运行良好,但在 Chrome 中我收到 Uncaught SyntaxError: Unexpected token : 错误,我无法确定原因。注释掉代码以确定错误代码的位置不会产生任何结果,我认为这可能是返回 JSON 的问题。检查控制台我看到返回的 JSON 是这样的:
{"votes":47,"totalvotes":90}
我看不出有什么问题,为什么会出现这个错误?
vote.each(function(e){
e.set('send', {
onRequest : function(){
spinner.show();
},
onComplete : function(){
spinner.hide();
},
onSuccess : function(resp){
var j = JSON.decode(resp);
if (!j) return false;
var restaurant = e.getParent('.restaurant');
restaurant.getElements('.votes')[0].set('html', j.votes + " vote(s)");
$$('#restaurants .restaurant').pop().set('html', "Total Votes: " + j.totalvotes);
buildRestaurantGraphs();
}
});
e.addEvent('submit', function(e){
e.stop();
this.send();
});
});
【问题讨论】:
-
JSON 很好。问题可能是你如何处理它。显示代码会有所帮助。
-
将代码部分添加到问题中。
-
语法、JS 和 JSON 似乎都没有问题。在 jsfiddle.net 上发布一个(不)工作的测试用例会有所帮助 - 包括 HTML。
-
我目前正在连接互联网,因此我的调制解调器会压缩我浏览的网站的 HTML 源代码,因此我无法真正从代码中找出正面或反面。但是,对于初学者来说,将每个 JS 代码放在外部文件中——这总是使调试更容易——你会知道错误是由 JS 或其他原因引起的。
-
“意外令牌”可能是一些非法字符代码。当您打印到控制台时,这样的代码可能不会出现。因此,一次打印出字符串一个字符或使用协议分析器或调试器等来查看字符串的实际字节数。
标签: javascript mootools google-chrome