我从以下地址加载了jquery cdn:
<head>
.
.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
然后在我的剧本中我有我的剧本来源
<body>
.
.<script src="app.js"></script>
</body>
这一切都在本地,但是当我在浏览器中查看时,我在控制台中不断收到以下错误:
GET file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
Uncaught ReferenceError: $ is not defined
我认为这是说jQuery函数“$ ...”是未定义的,因为CDN的GET中有错误,为什么会在本地发生?
答案 0 :(得分:14)
您实际上并未在localhost(http://localhost
)上运行,而是在本地文件系统(file:///path/to/whatever.html
)上运行。该协议使用//
链接复制到file://ajax.googleapis.com
,当然不存在。
您应该在计算机上设置服务器,以便使用http协议访问实际 localhost。它还有其它好处,因为当页面直接从文件系统加载时,浏览器在其他方面也会有所不同。
答案 1 :(得分:2)
您是否尝试删除“src”属性开头的“//”而不是“http://”?由于这些斜杠,它可能会将“localhost”附加到URL的开头。
答案 2 :(得分:0)
我在How to use Bootstrap CDN?回答了类似的问题,正如Juhana所说,问题是加载jQuery时缺少的协议。
使用http或https时,无协议CDN可以正常工作,因为浏览器会将前缀添加到jQuery URL中。
但是当使用本地html文件时,缺少的协议将是file:
,浏览器将无法在file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
无法加载jQuery的情况下找到jQuery。在这种情况下,您必须手动添加协议,如果您最终在线使用该页面,这是一个小问题,因为无协议的URL更好,缓存更友好(http://encosia.com/cripple-the-google-cdns-caching-with-a-single-character/)。