使用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中运行良好)
发布于 2010-02-26 22:27:15
当我使用JQuery从一个超文本标记语言的XMLHTTPRequest加载超文本时,这个问题就发生了,但是mime类型是文本/javascript。
例如,我有一些代码,如下所示:
jQuery.ajax({
data:'params=here',
success:function(request) {
jQuery('#country_list_container').html(request);
},
type:'get',
url:'/getHtml'
});jQuery正在向getHtml发送请求,而getHtml将返回一个简单的HTML片段,其mime/类型为"text/javascript"。getHtml操作返回text/javascript的原因是因为来自jQuery的请求的accept标头是:
"Accept:text/javascript, text/html, application/xml, text/xml, */*"所以,我所要做的就是强制输入text/html的头文件,然后一切都工作得很好。
您看到的解析错误是Javascript尝试对内容求值的结果。
发布于 2010-06-03 07:31:31
在我的例子中,它是由eval()语句中止引起的。当我修复这个问题时,错误消息消失了。
目前(2010年6月) Chrome Javascript有一个错误的eval()语句。如果为eval()语句中的变量分配了保留字'delete‘,则eval()将中止,而不会发出错误消息。我花了将近一周的时间才发现这个错误,因为eval()在没有任何警告或错误消息的情况下中止,而且中止有严重的副作用。
我使用eval()来实现这个结果: obj.delete =某个值。
此代码将导致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。
发布于 2008-12-26 07:09:27
可能HTTP内容类型不是text/html或application/xhtml+xml
https://stackoverflow.com/questions/393529
复制相似问题