似乎在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的行为?
答案 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检索。