canvas导出绘制图片canvas.toDataURL()报错

canvas绘制图片后,想导出图片,用canvas.toDataURL获取,发现打印不出数据,还报错。

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

at img.onload

代码:

// 可以将 canvas 的内容导出为图片

const dataURL = canvas.toDataURL('image/png');

一直想了很久,查资料,这代码也没有错啊。

最后让我找到答案。不是代码问题,是环境问题。

答案:这个问题因为是基于file:// 进行调试的,而chrome做了安全相关的处理,主要是HTML5安全的CORS(跨域资源共享)的安全限制,造成出现这样的提示,如果你需要在自己的电脑上调试的话,只需要本地搭建一个服务器环境就可以了。

前面我一直是本地进行的所以一直报错,现在我搬到PHP环境,就解决了。

效果图:可以打印出来图片了。

相关推荐
苦夏木禾16 小时前
使用css制作一个环形进度展示圈
前端·css
by__csdn16 小时前
ES6新特性全攻略:JavaScript的现代革命
开发语言·前端·javascript·typescript·ecmascript·es6·js
by__csdn16 小时前
Vue 双向数据绑定深度解析:从原理到实践的全方位指南
前端·javascript·vue.js·typescript·前端框架·vue·ecmascript
奋斗吧程序媛16 小时前
前端 Token 管理与最佳实践
前端·vue.js
linhuai17 小时前
在flutter中dio应该如何封装和使用
前端
汉堡大王952717 小时前
JavaScript类型侦探:四大神器让你一眼看穿变量真身
前端·javascript
Debroon17 小时前
从零开始手写ReAct Agent
前端·javascript·react.js
软件技术NINI17 小时前
html css js网页制作成品——成毅html+css+js 5页附源码
javascript·css·html
Hello.Reader17 小时前
Rocket 0.5 快速上手3 分钟跑起第一个 Rust Web 服务
开发语言·前端·rust
YIN_O17 小时前
openEuler 上 CUDA 与 ROCm 的 GPU 加速实战
前端