未捕获的SyntaxError:意外的标记:
我在我的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的形式发回JSON,并且默认的jQuery处理程序工作正常。
看到红色的错误
未捕获的SyntaxError:意外的标记<
在Chrome开发者的控制台标签中通常会显示301重定向 ,这可能是由.htaccess文件中的一条奇怪规则引起的。
你实际看到的是你的浏览器对来自服务器的意外顶行<!DOCTYPE html>
的反应。
这一切都发生在我身上,原因并非如上所述。 我正在使用jQuery命令getJSON并添加callback=?
使用JSONP(因为我需要跨域),并返回JSON代码{"foo":"bar"}
并获取错误。
这是因为我应该包含回调数据,如jQuery17209314005577471107_1335958194322({"foo":"bar"})
这里是我用来实现这个的PHP代码,如果使用JSON(没有回调),则代码会降级:
$ret['foo'] = "bar";
finish();
function finish() {
header("content-type:application/json");
if ($_GET['callback']) {
print $_GET['callback']."(";
}
print json_encode($GLOBALS['ret']);
if ($_GET['callback']) {
print ")";
}
exit;
}
希望这将有助于未来的人。
链接地址: http://www.djcxy.com/p/1245.html