http与https的js引用

问题描述

页面里的一个走外部引用的js如下,项目测试环境为HTTP请求没有异常。

1
<script charset="UTF-8" type="text/javascript" src="http://index.js"></script>

在生产环境HTTPS请求时,页面加载报错。报错内容如下:

1
2
Mixed Content: The page at 'https://index.html' was loaded over HTTPS, but requested an insecure script 'http://index.js'. 
This request has been blocked; the content must be served over HTTPS.

问题分析

由于浏览器的安全机制,禁止在HTTPS访问中,跨域访问HTTP请求。

解决

将该js引用修改为HTTPS链接,如果引用本身同时支持HTTP请求和HTTPS请求,可以修改为如下写法:

1
<script charset="UTF-8" type="text/javascript" src="//index.js"></script>