HTTPS环境下jQuery被拦截原因及网站CDN加载异常求助
为什么HTTPS环境下jQuery CDN会被拦截?
这是典型的**混合内容(Mixed Content)**问题,我给你掰扯清楚来龙去脉:
问题本质
当你的网站通过HTTPS协议加载时,浏览器会严格执行"安全上下文"的规则——要求页面上所有的资源(脚本、样式、图片、字体这些)都必须通过HTTPS加载。这么做是为了防止攻击者通过明文的HTTP资源植入恶意代码,破坏整个HTTPS页面的安全性。
你控制台的提示已经把原因说得明明白白:页面是从https://eoxys-esport.com/?here=home(HTTPS安全链接)加载的,但你请求的jQuery脚本是http://code.jquery.com/jquery-3.3.1.min.js(HTTP明文链接),属于不安全的非加密资源,所以浏览器直接拦截了这个请求,这是浏览器的安全保护机制在起作用。
至于HTTP环境下能正常运行,是因为HTTP本身就是明文协议,没有强制要求资源必须用同协议加载的规则,自然不会触发拦截。
快速解决办法
你只需要把jQuery的引用地址改成HTTPS版本就可以了:
- 原来的引用代码:
<script src="http://code.jquery.com/jquery-3.3.1.min.js"></script> - 修改后的代码:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
另外还有个更省心的写法,用协议相对URL,它会自动匹配当前页面的协议(不管是HTTP还是HTTPS),以后切换协议也不用改资源链接:
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
这样就能完美解决这个问题啦。
内容的提问来源于stack exchange,提问作者MydroX
相关产品推荐
相关产品推荐

