使用Google Chrome时,收到以下错误消息:
错误:
Uncaught SyntaxError: Unexpected token <
它直接发生在我的HTML页面顶部的doctype声明之后
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
任何想法这个JavaScript错误消息是什么?它似乎只发生在谷歌Chrome(在Safari,Firfox和IE中正常工作)
答案 0 :(得分:14)
当我使用JQuery从HTML格式的XMLHTTPRequest加载HTML时,我遇到了这个问题,但是mime类型是text / javascript。
例如,我有一些代码如:
jQuery.ajax({
data:'params=here',
success:function(request) {
jQuery('#country_list_container').html(request);
},
type:'get',
url:'/getHtml'
});
jQuery正在向getHtml发送请求,而getHtml正在返回一个简单的HTML片段,其中mime / type为"text/javascript"
。 getHtml
操作返回text/javascript
的原因是因为jQuery请求的接受标头是:
"Accept:text/javascript, text/html, application/xml, text/xml, */*"
所以,我所要做的只是强制text/html
的标题,一切都很完美。
您看到的解析错误是Javascript尝试评估内容的结果。
答案 1 :(得分:2)
在我的情况下,它是由eval()
语句中止引起的。当我修复问题时,错误消息消失了。
目前(2010年6月)Chrome Javascript有一个错误的eval()
声明。如果eval()
语句中的变量已分配保留字“eval()
”,delete
将中止而不发出错误消息。我花了差不多一个星期来发现这个错误,因为eval()
在没有任何警告或错误消息的情况下中止,并且中止具有令人讨厌的副作用。
我使用eval()
来实现此结果:obj.delete = somevalue。
此代码将导致eval()中止:
var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj.' + x + ' = y');
此代码有效:
var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj[\'' + x + '\'] = y');
总之,请勿使用eval()
来构建obj.delete = somevalue
。使用eval()
构造等效语句obj["delete"] = somevalue
。
答案 2 :(得分:1)
也许HTTP内容类型不是text/html
或application/xhtml+xml
?
答案 3 :(得分:1)
我发现了这个Google网上论坛的问题。
其他一些人遇到了问题,但没有解决问题。
http://www.google.com/support/forum/p/Chrome/thread?tid=7e9f87870a37e401&hl=en
答案 4 :(得分:1)
尝试切换css和js声明的顺序。为我工作。
答案 5 :(得分:1)
如果要在JSON中返回对ajax请求的响应,请确保使用'application/json'
作为Content-Type。
答案 6 :(得分:1)
冒着挖掘旧线程的风险(我认为最好将所有信息保存在一个地方),Chrome仍然会抛出这些错误。我在开发一个网站时得到了以下内容,并尝试使用页面JS和PHP进行各种操作来摆脱它。我得到的错误是:
error in event handler for 'undefined': SyntaxError: Unexpected token ILLEGAL
chrome/EventBindings:183
最终在检查FireFox中的代码有效性时,我偶然发现了答案,并警告说某些文字中有'&'
应该转换为'&'
- 一旦完成此操作,Chrome错误就会消失
史蒂夫
答案 7 :(得分:0)
当我尝试使用php动态生成.innerHTML
时,我遇到了这个问题(它生成了多行)。
用空格替换换行符解决了这个问题。
答案 8 :(得分:0)
如果是Rails应用程序,请检查format.js是否在response_to块中。
答案 9 :(得分:0)
我在Chrome Dev Tools中也遇到了这个错误,我的原因与Matthew O'Riordan相似,不过它不是Accept MIME类型,而是破坏的AJAX URL。
我重新安排了我的文件夹结构,忘了更新网址;一旦我修复了URL,Dev Tools JS Error就消失了。 希望这可以帮助! :)