未捕获的语法错误: 意外的令牌:

2022-08-30 00:49:18

我正在我的MooTools脚本中运行AJAX调用,这在Firefox中工作正常,但在Chrome中我收到错误,我无法确定原因。注释掉代码以确定错误代码的位置不会产生任何结果,我认为这可能是返回JSON的问题。在控制台中检查我看到返回的JSON是这样的:Uncaught SyntaxError: Unexpected token :

{"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();
  });
});

答案 1

看到红色错误

未捕获的语法错误:意外的令牌<

在 Chrome 开发者的控制台标签中,表示响应正文中有 HTML 的指示。

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


答案 2

对于可能有相同问题的人来说,这只是一个FYI - 我只需要让我的服务器将JSON作为appplication/json发送回去,默认的jQuery处理程序工作正常。