我对jQuery有一个非常奇怪的问题:
我有一个网站(使用Flask):http://localhost:5000/
,它完美无缺。现在我已经设置了一个子域,编辑了我的/etc/hosts
(我添加了127.0.0.1 fonts.localhost
),子域使用了完全相同的html(甚至更少)但是当我加载网站时,jQuery给了我这个错误:
Uncaught TypeError: Cannot call method 'toLowerCase' of undefined
。它来自未压缩jQuery 1.7.2文件的行uaMatch
中的函数884
。传递给函数的参数必须是未定义的,uaMatch只用userAgent
调用一次(第925行),在第75行分配userAgent
:userAgent = navigator.userAgent
。 navigator.userAgent
为"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19"
(根据调试控制台)。
所以我真的不明白为什么我会收到这个错误,这个错误只发生在子域上。 fonts.localhost:5000
的重要html。
<!doctype html>
<title>test</title>
<meta charset=utf-8>
<link rel=stylesheet type=text/css href="http://localhost:5000/static/style.css">
<link rel=stylesheet type=text/css href="http://localhost:5000/static/bootstrap.min.css">
<script type=text/javascript src="http://localhost:5000/static/jquery-1.7.2.min.js"></script>
<body>
…
</body>
修改: 它也不适用于未压缩的jQuery(我还包括在谷歌托管的jQuery文件进行测试,同样的错误)
答案 0 :(得分:0)
哦,亲爱的,我终于发现了错误,似乎jQuery无法处理没有TLD的域名,我将主机条目从127.0.0.1 fonts.localhost
更改为127.0.0.1 fonts.localhost.localdomain
,此更改后jQuery正常工作。是否值得一个bug报道?