解决百度分享和cnzz统计造成的chrome报警方法

继给挖模板网站挂上绿锁之后,我的强迫症进一步爆发,虽然我不经常使用F12查看网页源码,不过由于我经常使用chrome,今天偶然间按F12查看了一下,不看不知道一看吓一跳。

我的站有2个红色警告,4个黄色警告,经过一番研究终于是完美解决,其实也不是什么大问题,就跟我们部署SSL时,有的文件没有适配到https访问而已,分析后发现主要报错原因有两个。

1.百度分享不支持https

因为我的网站报错已经修复了,所以懒得为了写篇文章再弄出个错误再去修复。出现这种问题的原因很简单。This request has been blocked;the content must be served over HTTPS。从字面意思可以理解为:这个请求被禁止了,因为这个内容必须要在HTTPS服务下。这就很好解决了,找到引用的文件,上传到自己网站,然后替换即可。请无视上图,上图不是因为百度分享造成的,不过解决方法是一样的。

下载百度分享的js文件包(下方文件下载提供)

上传到网站根目录。

打开报错的js文件,在文件中将

http://bdimg.share.baidu.com

替换为

https://www.yourdomain.com

然后更新缓存,刷新再看,完美解决。

2.cnzz统计引起报错

引起这种错误的原因

一个跨站解析器阻断脚本XXXX.js通过document.write调用,如果设备的网络连接较差,该脚本的网络请求可能会被浏览器在此页面或未来页面加载中被阻止。

解决方法是放弃cnzz统计!开个玩笑,其实解决方法就是讲CNZZ普通JS代码更改为异步统计代码。将统计代码

<script type="text/javascript" src="https://s22.cnzz.com/z_stat.php?id=XXXXXXXX&web_id=XXXXXXXX"></script>

替换为

<script>

var cnzz_s_tag = document.createElement('script');

cnzz_s_tag.type = 'text/javascript';

cnzz_s_tag.async = true;

cnzz_s_tag.charset = 'utf-8';

cnzz_s_tag.src = 'https://w.cnzz.com/c.php?id=XXXXXXXX&async=1';

var root_s = document.getElementsByTagName('script')[0];

root_s.parentNode.insertBefore(cnzz_s_tag, root_s);

</script>

将上面的XXXXXX替换成你的网站ID,然后更新网站再查看,完美解决。

参考:

http://baijiahao.baidu.com/s?id=1603029868793207129&wfr=spider&for=pc

http://www.daqianduan.com/6460.html