帆布导出图片跨域的示例分析

  介绍

这篇文章将为大家详细讲解有关帆布导出图片跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

未捕获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:真正配置项,原理跟方法二一样,当然前置条件是图片域名允许跨域

关于“画布导出图片跨域的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

帆布导出图片跨域的示例分析