无法从子域

时间:2016-10-12 10:50:36

标签: javascript

我正在使用子域来减少网站的大小。我只是想从子域链接脚本。脚本在与同一域链接时工作得非常好,但在与子域链接时不起作用。例如

我的域名= https://www.test.com

sub domain = http://abc.test.com

我正在使用=

 <script src= "http://abc.test.com/js/combodate.js"  type="text/javascript"></script>

2 个答案:

答案 0 :(得分:2)

从我能看到的内容中你的错误非常明显:

您的主网址网址使用https://,但您的脚本子网域使用http://,并且现代浏览器目前拥有完全安全域策略(没有不同的加载资源协议,所有应该在与主域名相同的协议,也就是您访问网站的协议,您的子域名也应该使用https://,或者您的主域名应该使用http://

正如MDN's page about mixed content所述,大多数浏览器只允许mixed passive/display content<img><audio><video><object>(subresources)加载混合内容,但是<script><link>XMLHttpRequest<iframe>in-css url()<object>(data attribute)都是active content,因此可能会成为主题到Man-in-the-middle attack,因此浏览器不允许在混合环境中加载活动内容(tl; dr使用https作为js和你的主网站或http都是js和主网站)。

还值得注意的是,https://上的资源(http://和主页上的资源)按预期工作,因为与资源的https连接不受中间人攻击和由于页面在http://上,因此浏览器不会将其视为&#34;安全关键区域&#34;因此,您可以通过http://https://

加载内容

答案 1 :(得分:-3)

尝试将以下内容添加到您的html页面:

<script src="http://abc.test.com/js/combodate.js" type="text/javascript"></script>

重要的是:

  1. 确保使用src属性
  2. 确保您打开关闭<script></script>代码