17

使用 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 错误消息是什么吗?它似乎只发生在 Google Chrome 上(在 Safari、Firfox 和 IE 中运行良好)

4

10 回答 10

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 尝试评估内容的结果。

于 2010-02-26T14:27:15.440 回答
2

就我而言,这是由eval()声明中止引起的。当我解决问题时,错误消息消失了。

目前(2010 年 6 月)Chrome Javascript 有一个错误的eval()声明。如果语句中的变量已分配保留字“ ” eval(),则将中止而不发出错误消息。我花了将近一周的时间才发现这个错误,因为中止没有任何警告或错误消息,而且中止有令人讨厌的副作用。eval()deleteeval()

我是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

于 2010-06-02T23:31:30.903 回答
1

尝试切换 css 和 js 声明的顺序。为我工作。

于 2010-02-08T06:01:24.137 回答
1

也许 HTTP 内容类型不是text/htmlapplication/xhtml+xml

于 2008-12-26T07:09:27.237 回答
1

我发现了这个 Google Groups 问题。

其他一些人遇到问题但没有解决方案。

http://www.google.com/support/forum/p/Chrome/thread?tid=7e9f87870a37e401&hl=en

于 2008-12-26T07:09:59.200 回答
1

冒着挖掘旧线程的风险(我认为最好将所有信息保存在一个地方),Chrome 似乎仍在抛出这些错误。我在开发网站时得到了以下内容,并尝试使用页面 JS 和 PHP 来摆脱它。我得到的错误是:

error in event handler for 'undefined': SyntaxError: Unexpected token ILLEGAL
chrome/EventBindings:183

最终,在 FireFox 中检查代码有效性时,我偶然发现了答案,作为警告,'&'在某些文本中应该转换为'&amp;'- 一旦完成,Chrome 错误就消失了。

史蒂夫

于 2011-08-15T05:54:14.260 回答
1

如果您以 JSON 格式返回对 ajax 请求的响应,请确保使用'application/json'Content-Type。

于 2010-06-06T20:10:03.697 回答
0

如果它是 Rails 应用程序,请检查 format.js 是否在 response_to 块中。

于 2010-11-29T14:53:21.707 回答
0

当我尝试.innerHTML使用 php 设置动态生成时遇到了这个问题(它是多行生成的)。

用空格替换换行符解决了这个问题。

于 2010-04-23T21:56:52.587 回答
0

我在 Chrome 开发工具中也遇到了这个错误,我的原因与 Matthew O'Riordan 的类似,只是它不是 Accept MIME 类型,而是损坏的 AJAX URL。

我重新排列了我的文件夹结构并忘记更新 URL;一旦我修复了 URL,Dev Tools JS 错误就消失了。希望这可以帮助!:)

于 2015-01-31T00:42:29.460 回答