相对URL:协议名跨域的一种处理方式

  • 问题现象

  当页面地址协议与页面内请求地址协议不一致(不都是https或不都是http)时,往往请求会被拦截。控制台提示:

  

  • 原因

  浏览器对于JavaScript的同源策略的限制,简言之就是我们常说的跨域。

  • 处理

  处理跨域的方式有很多,对于前端而言,JSONP是不错的选择。但现阶段,大多数第三方平台会同时提供https和http两种协议下的可访问资源地址,尤其是CDN资源,那么处理这种这种跨域的简单方法来了:相对URL。相对URL使用更加模糊的语法,如:

   1 <script src='//xxx.cdn.net/xxx.js'></script> 

  在这里,资源地址不添加协议名,在这种情况下,src将使用当前浏览器地址栏中的协议名。在HTTPS页面上,这将是对CDN的HTTPS请求,在HTTP页面上,它将是HTTP请求。这样就可以解决大多数的CDN资源问题。

作者:阿晋Joseph
声明:本站博客均为原创,如有雷同请与我联系。原创不易,请在转载时保留原文链接或者在文章开头加上本人博客地址。如发现错误,欢迎批评指正。更多内容,请访问:https://haha.plus
原文地址:https://www.cnblogs.com/yangguojin/p/10048718.html