Uncaught SyntaxError: Unexpected token :

新手上路,请多包涵

我在我的 MooTools 脚本中运行 AJAX 调用,这在 Firefox 中运行良好,但在 Chrome 中我收到 Uncaught SyntaxError: Unexpected token : error,我无法确定原因。注释掉代码以确定错误代码的位置不会产生任何结果,我认为这可能是返回 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();
  });
});

原文由 trobrock 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 892
2 个回答

我刚刚解决了这个问题。标准请求调用出现问题,所以这是我使用的代码:

 vote.each(function(element){
 element.addEvent('submit', function(e){
 e.stop();
 new Request.JSON({
 url : e.target.action,
 onRequest : function(){
 spinner.show();
 },
 onComplete : function(){
 spinner.hide();
 },
 onSuccess : function(resp){
 var j = resp;
 if (!j) return false;
 var restaurant = element.getParent('.restaurant');
 restaurant.getElements('.votes')[0].set('html', j.votes + " vote(s)");
 $$('#restaurants .restaurant').pop().set('html', "Total Votes: " + j.totalvotes);
 buildRestaurantGraphs();
 }
 }).send(this);
 });
 });

如果有人知道为什么标准的 Request 对象给我带来了问题,我很想知道。

原文由 trobrock 发布,翻译遵循 CC BY-SA 2.5 许可协议

看到红色错误

未捕获的语法错误:意外的标记 <

在 Chrome 开发人员的控制台选项卡中,指示响应正文中的 HTML。

您实际看到的是浏览器对来自服务器的意外顶行 <!DOCTYPE html> 的反应。

原文由 andy magoon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题