Ajax错误: Uncaught SyntaxError: Unexpected token '<'

12 浏览
0 Comments

Ajax错误: Uncaught SyntaxError: Unexpected token '<'

我在我的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)返回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();

});

});

0
0 Comments

问题的原因是服务器返回的响应类型不匹配。解决方法是将服务器响应类型设置为"application/json"。

在这个问题中,一些人遇到了类似的问题,并提出了解决方法。某些情况下,在服务器发送JSON响应时,将响应类型设置为"application/json",这样默认的jQuery处理程序就能正常工作。还有人反馈说他们从第三方API请求JSON时,返回的响应类型是"application/javascript",导致出现了相同的错误,但不知道如何解决。

还有一个人提到,奇怪的是在本地主机上运行正常,但在服务器上运行时出现了问题,并询问是否知道原因。

还有一个人问如何将JSON发送回服务器,因为他遇到了完全相同的问题并且无法解决。

还有一个人感谢了之前的回答,并提到他之前将响应类型误设置为"application/javascript",导致在接收到有效的JSON时出现了错误。将响应类型更改为"application/json"后,问题得到解决。他还指出自己没有使用JSONP。

最后,还有一个人报告说他收到了JSON格式的响应{"success":true,"data":2593},但仍然出现了相同的错误"Uncaught SyntaxError: Unexpected token :"。

出现"Ajax Error : Uncaught SyntaxError: Unexpected token '<'"的原因是服务器返回的响应类型不正确,解决方法是将响应类型设置为"application/json"。

0
0 Comments

这个问题的出现原因是没有正确使用JSONP的回调函数。解决方法是在返回的JSON代码中包含回调数据,并确保回调函数名称不以数字开头。以下是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; 
}

这样做可以确保在使用JSONP方法时正确包装JSON数据。同时,如果使用JSON,代码也会正常运行。

希望这对将来遇到同样问题的人有所帮助。对我来说帮助很大。

0
0 Comments

在Chrome开发者控制台中看到以下错误信息块:

Uncaught SyntaxError: Unexpected token <

这是响应体中包含HTML的一个迹象。实际上,你看到的是浏览器对服务器返回的意外顶行``的反应。

我不知道为什么你提到了“Unexpected token <”,而问题是关于“Unexpected token :”。你的回答与问题完全无关。

那我该如何解决这个问题呢?我有一个在Chrome中引起这个问题的PHP重定向。

补充_magoon的回答,我的情况是我有一个脚本标签,它应该提供JavaScript,但由于请求被重定向到一个以``开头的HTML页面(为什么重定向并不重要),而``不是有效的JavaScript,当浏览器尝试将HTML解析为JS时,它返回SyntaxError。

解决方法是确保HTTP GET返回你要查找的JavaScript文件,而不是意外的HTML。

我正好因为文件路径不正确,找不到脚本标签中指定的文件,导致了这个错误。

对我来说是`301重定向`问题本身。通过在URL末尾添加`/`进行修复。

当我尝试在Heroku上运行一个未完成的项目部署时,有时会遇到这个错误。

.barkhuizen,我觉得你说的完全正确。但现在我该如何让浏览器理解或从服务器发送JavaScript文件呢?

对于任何遇到类似问题的人,我在`.html`之后添加了`/`导致了这个错误。

0