使用IE8中的http URL在https页面中导入js文件

时间:2009-04-22 10:59:48

标签: javascript internet-explorer

似乎在IE8中, 如果使用https协议的页面需要导入.js文件, .js文件还需要使用https协议。

<script type="text/javascript" src="http://xxx/yourjs.js"></script> 

适用于IE8以外的所有浏览器

<script type="text/javascript" src="https://xxx/yourjs.js"></script> 

适用于所有浏览器

我正在使用导入多个.js文件的usercontrol。这意味着如果一个页面使用https协议,那么我必须更改usercontrol,以便所有导入的.js文件都使用https协议。

您如何解决此问题?
你如何评论这个IE8的行为?

3 个答案:

答案 0 :(得分:3)

在HTTPS上使用此功能

<script type="text/javascript" src="http://xxx/yourjs.js"></script>

应该在所有浏览器中向用户发出警告 - 我希望IE8能够做同样的事情,但也许这是一个新的“功能”,可以默默地忽略它。

您应该使用与请求相同的协议,或者始终使用HTTPS失败(尽管这对用户来说会更慢,并且会给您的服务器带来更多负担)。

您可以指定不带方案的网址 - 应使用当前网址(http或https):

<script type="text/javascript" src="//xxx/yourjs.js"></script>

编辑:找到有效的参考文献:RFC 2396

 relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
     

以...开头的相对参考   两个斜线字符被称为
  网络路径引用,由定义    在第3节中   参考文献很少使用。

答案 1 :(得分:1)

这是正确的行为。您不希望非安全资源成为安全页面的一部分。在IE的早期版本中,显示了一个警告,但我觉得很多人只是说“继续”而不知道其含义是什么。错误现在是沉默的。您可以调整您的安全设置,但这只会修复您的浏览器(正如我所提到的,这不是一个好主意)。

确保您的页面资源在您的安全页面上都是安全的。 (图片,iframe来源,脚本......很多!)

答案 2 :(得分:0)

您确定这与使用混合内容安全设置无关吗?

可能值得检查您的浏览器设置,以查看您正在运行的区域设置为。

说实话,我喜欢我去的网站,要保持一致,所以我希望你的javascript文件可以通过https检索。