最近手上的官网图文出现“此图片来自微信公众平台,未经允许不可引用”,导致图片显示不了,究其原因:因为微信公众平台对图片采用了防盗链设置,微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章,或者你也可以通过爬虫去抓取微信的文章,但是微信的图片默认是不允许外部调用的。
解决方案:【文章来源优快云 Lison原创,请标明出处】
1、下载图片保存在本地上,发布图片时候上传本地图片;
2、在JS中提前把图片加载到本地,然后从本地缓存中读取图片
var showImg = function (url) {
var frameid = 'frameimg' + Math.random();
window.img = '<img id="img" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';
return '<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>';
}
通过各种iframe,form等来跳过防盗链机制,但是这种方法,对代码的结构影响很大,对一些移动类库兼容性不太好。
3、在head标签上加上【经测试,已经被和谐掉了】
<meta name="referrer" content="no-referrer"&nbs