【发布时间】:2014-01-20 01:39:18
【问题描述】:
我在一些项目中使用knitrBootstrap,我开始学习 JQuery (Javascript) 和 CSS 以对生成的页面进行一些修改。我也明白,通常 CSS 文件和脚本放在单独的文件中,并从同一个域(或本地)加载到 HTML 文档,但是当我阅读这两个库的文档时,我发现它们可以从 CDN 加载provider 并且从 knitrBootstrap 生成的 HTML 文件也这样做。
例如:http://rawgithub.com/jimhester/knitrBootstrap/master/vignettes/illusions.html(第 18-24 行)
<!-- jQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<!-- bootstrap -->
<link href=https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css rel="stylesheet">
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
这看起来很不错,因为它允许从第三方提供商加载静态资源,并在托管时在自己的服务器上备用资源。但是,我也有点担心安全性(不完全是出于我的目的,而是针对一般使用此功能的网页),因此对其进行了搜索。我找到了同源策略的概念,据我了解,不应该允许 JQuery 提供的功能更改页面本身的 DOM 对象,而是这样做。
为什么 JQuery 代码和 Bootstrap CSS 允许更改剩余的文档,即使它们不是从同一个域而是从另一个域(在本例中为 CDN)加载的?
【问题讨论】:
标签: javascript jquery css cdn