根据 http 或 https 协议动态加载 JavaScript

6

我有一个JavaScript文件位于不同的服务器上,我在http页面上包含了该JavaScript文件,如下:

<script type="text/javascript" src="http://www.example.com/scriptfile.js">

或者在 https 页面上

<script type="text/javascript" src="https://www.example.com/scriptfile.js">

问题在于,在用户从http切换到https的页面时,我遇到了问题。例如,如果用户在http://www.example.com/home(站点主页URL)中,我通过http加载javascript脚本,现在当用户导航到另一个页面,如https://www.example.com/transaction(站点交易URL),我通过https加载脚本,它可以正常工作。但从上述交易URL转到https://www.example.com/home(主页URL已更改为https),由于不安全内容,我加载的http脚本会失败。欢迎提出任何建议来处理此问题。

1
解决方案很简单,就是摆脱所有不安全的内容 - 只需在整个站点上使用 https://,并关闭端口80。 - Floris
@Floris 我使用了 'https' 加载 JavaScript,无论页面协议如何,它都可以正常工作。谢谢。 - Mehavel
2个回答

11

协议是可选的。如果您省略它,浏览器将使用文档的协议。 因此,您可以执行以下操作:

<script type="text/javascript" src="//www.mydomain.com/scriptfile.js">

将使用正确的协议。


5

在您的脚本中使用协议相对URL:

<script type="text/javascript" src="//www.mydomain.com/scriptfile.js">

这将使用与调用页面相同的协议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接