使用 js 构建 Canvas,之后调用HTMLCanvasElement.toDataURL()方法,如果绘制过程中添加了图片,也就是使用CanvasRenderingContext2D.drawImage() 方法,并且图片地址是外站的,就会报下面的错误:

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

解决的方法是允许图片跨域,跨域的设定和使用fetch跨域设定是一样的。对于不需要导出图片的场景,将 canvas 元素直接放置在网页上是没有这个问题。