我在我的MooTools脚本中运行一个AJAX调用,这在Firefox中工作得很好,但在Chrome中,我得到了一个未捕获的SyntaxError:意外令牌:错误,我不能确定为什么。注释掉代码来确定坏代码在哪里不会产生任何结果,我认为这可能是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();
  });
});

当前回答

我想我应该把我的问题和决心加到清单上。

我得到:Uncaught SyntaxError:意外令牌<和错误是指向这一行在我的ajax成功声明:

var total = $.parseJSON(response);

我后来发现,除了json结果之外,还有HTML与响应一起发送,因为我的PHP中有一个错误。当PHP中出现错误时,你可以设置它用巨大的橙色表格来警告你这些表格会抛出JSON。

我发现,只是做一个console.log(响应),以查看实际发送了什么。如果这是JSON数据的问题,只需尝试查看是否可以执行console.log或其他一些语句,以便查看发送了什么和接收了什么。

其他回答

当我使用jQuery.getJSON()试图反序列化无穷大的浮点值时,我得到了一个“SyntaxError:意外令牌I”,编码为INF,这在JSON中是非法的。

我刚刚解决了这个问题。有一些东西导致了标准请求调用的问题,所以这是我使用的代码:

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);
  });
});

如果有人知道为什么标准请求对象给我的问题,我很想知道。

我得到这个错误,因为我在脚本标签中缺少类型属性。

最初我使用,但当我在脚本标记内添加类型属性时,我的问题就解决了

对于那些在AngularJs 1.4.6或类似版本中遇到过这种情况的人来说,我的问题是angular找不到我的模板,因为我提供的templateUrl (path)中的文件找不到。我只需要提供一个可到达的路径,问题就解决了。

这个错误也可能意味着代码中缺少冒号或:。