jQuery CDN未在LocalHost上加载

我有一个jquery cdn从以下加载:

 . .   

然后在我的身体我有我的脚本来源

  . .  

这一切都在本地,但是当我在浏览器中查看时,我在控制台中不断收到以下错误:

 GET file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js Uncaught ReferenceError: $ is not defined 

我假设这是说jQuery函数“$ …”是未定义的,因为CDN的GET中存在错误,为什么会发生在本地?

您实际上并未在localhost( http://localhost )上运行,而是在本地文件系统上运行( file:///path/to/whatever.html )。 该协议使用//链接复制到file://ajax.googleapis.com ,当然这不存在。

您应该在计算机上设置服务器,以便使用http协议访问实际的本地主机。 它还有其他好处,因为当页面直接从文件系统加载时,浏览器在其他方面的行为也有所不同。

您是否尝试删除“src”属性开头的“//”而不是“http://”? 由于这些斜杠,它可能会将“localhost”附加到URL的开头。

我在如何使用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 file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js无法加载它。 在这种情况下,您必须手动添加协议,如果您最终在线使用该页面,这是一个小问题,因为无协议的URL更好,缓存更友好( http://encosia.com/cripple-the-google- cdns-caching-with-a-single-character / )。