canvas.toDataURL 由于跨域报错的解决方法

Posted blogs-xlf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas.toDataURL 由于跨域报错的解决方法相关的知识,希望对你有一定的参考价值。

关于canvas.toDataURL 由于跨域报错的解决方法

用过canvas,都知道toDataURL这个方法真好用,不仅合成图片用到它,压缩图片也用到它。但有一个问题,就是图片源不能跨域,不然会报错:

Uncaught DOMException: Failed to execute 'toDataURL' on 'htmlCanvasElement': Tainted canvases may not be exported.

解决方法,相信大家都知道了,就是在图片img加上crossOrigin属性,赋值为Anonymous。但还有一个关键的地方,就是设置crossOrigin要在设置src地址之后,否则是没有效果的:


var img = new Image();
img.src = '.....';  //顺序不能错
img.setAttribute("crossOrigin",'Anonymous');

以上是关于canvas.toDataURL 由于跨域报错的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

django使用csrf防止跨域报错

新版chrome导致跨域报错,tomcat设置修复

axios03-解决请求头兼容导致跨域报错问题

Access to Image at 'file:///Users canvas本地图片跨域报错解决方案

跨域报错解决方案Access to XMLHttpRequest at ‘http://xxx.com/xxx‘ from origin ‘null‘ has been blocked by

Canvas.toDataURL() 适用于除 IE10 以外的所有浏览器