-
问题现象
当页面地址协议与页面内请求地址协议不一致(不都是https或不都是http)时,往往请求会被拦截。控制台提示:
![](https://img.haomeiwen.com/i8586222/8862997ef4224d04.png)
-
原因
浏览器对于JavaScript的同源策略的限制,简言之就是我们常说的跨域。
-
处理
处理跨域的方式有很多,对于前端而言,JSONP是不错的选择。但现阶段,大多数第三方平台会同时提供https和http两种协议下的可访问资源地址,尤其是CDN资源,那么处理这种这种跨域的简单方法来了:相对URL。相对URL使用更加模糊的语法,如:
<script src='//xxx.cdn.net/xxx.js'></script>
在这里,资源地址不添加协议名,在这种情况下,src将使用当前浏览器地址栏中的协议名。在HTTPS页面上,这将是对CDN的HTTPS请求,在HTTP页面上,它将是HTTP请求。这样就可以解决大多数的CDN资源问题。
网友评论