这篇文章将为大家详细讲解有关帆布导出图片跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
未捕获DOMException:未能执行& # 39;toDataURL& # 39;>,, var canvas =, . getelementbyid (& # 39; myCanvas& # 39;) var 才能;ctx =, canvas.getContext (& # 39; 2 d # 39;) var 才能;img =, document.createElement (& # 39; img # 39;) img.crossOrigin才能=癮nonymous" 时间=img.src 才能;& # 39;https://cache.yisu.com/upload/information/20210312/296/131387.jpg& # 39; img.onload 才能=,()函数,{ ,,,ctx.drawImage (img, 0, 0500300); ,,,console.log (canvas.toDataURL ()) 以前,,}>
这样前后结合跨域问题便迎刃而解
<强>三,把图片放到当前域名下强>
原谅我不厚道的笑了,这的确是一种可以解决问题。
但实际项目中图片一般都存储在cdn上,所以这种方式不太现实? ? ?
图片变成base64就没有域名一说了,自然不存在跨域
<强>四,当图片服务没法设置跨域响应头时强>
确实有这种情况,比如获取第三方网站的头像,比如微信头像,然后前端动态生成新的图片,微信头像图片不允许跨域导出,怎么办? ? ?上面的几种方式都不好使
这种情况需要后端协助了,后端做一层转发,服务端获取头像,转换成base64返回前端,或者存储到本地允许跨域的服务器上,生产一个新的图片链接,返回给前端,这个时候结合方法一或者方法二、跨域问题也自然解决
如果你用的htmlToCanvas插件导出图片的话,则需要添加useCORS:真正配置项,原理跟方法二一样,当然前置条件是图片域名允许跨域
关于“画布导出图片跨域的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。
帆布导出图片跨域的示例分析