f2e-journey / xueqianban

学前班 - 学前端
http://f2e-journey.github.io/xueqianban/
MIT License
320 stars 56 forks source link

获取微信头像的 base64 数据 #77

Open ufologist opened 5 years ago

ufologist commented 5 years ago

应用场景

原理

想要获取图片的 base64 数据, 我们大概都知道, 需要将图片绘制到 canvas 上, 再通过 toDataURL 方法拿到 DataURL 数据, 即 base64 的图片数据

结论与重点

示例

generate-wx-headimgurl-dom-image | gist

遇到的坑

补充

关于在 HTTPS 的页面中加载 HTTP 的内容, 我们的印象中是所有的 HTTP 的内容都会被浏览器阻止

在开发的过程中需要生成带微信头像的图片, 在 PC 端(因为开发习惯了使用 Disable cache)测试都是可以的, 一到移动端就不行了, 试过很多办法后无果(〒_〒 绝望了...) 突发奇想将微信头像 URL 的 HTTPS 替换成 HTTP, 发现就能够获取到 base64 的数据了, 很是诡异. 现在理清楚背后的故事, 原来是缓存在作怪, 只要不触发浏览器的缓存就能够通过 CORS 跨域机制获取到图片的 base64 的数据

参考

Mark24Code commented 3 years ago

感谢笔记