你不知道的http:

14 阅读1分钟

先给大家看一个简单的小例子,引入外部jweixin文件:

  <script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

然而通常我们引入外部文件都是需要写全url的:

<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

今天遇到这样的例子,记录一下,在根目录中引入js文件,android设备然后在小程序页面跳转到原生页面的方式是能够正常调换的,ios设备然后跳转就没反应了,百度了一番找到了根本原因所在:

第一点,是这种写法是相对路径的写法,对于相对的url,浏览器在处理的过程中(发送http请求),会将它转化为绝对路径,即补全URL的协议、域名和路径。所以请求//res.wx.qq.com/open/js/jweixin-1.6.0.js,浏览器则会补全协议http或者https,补全的原则是与当前页面打开的协议相同。

第二点,也就是最重要的一点,是用户的请求的协议是不清楚的有可能是http协议也有可能是https协议,(注意:https协议是基于http协议之上的,是一种安全的超文本传输协议),所以既然不知道开发者使用的协议,倒不如直接使用相对路径的写法来引入外部文件,这样就能够保证我们引入的外部文件能够不受协议的影响,使得与用户使用的协议一致。

这以后当我们再次看到没有写http:引入外部文件的时候可不要再大惊小怪了,知道原因了吗?

在此记录一下,欢迎大家一起交流学习