Canvas引入跨域的图片导致toDataURL()报错的问题的解决


Posted in HTML / CSS onSeptember 19, 2018

本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下:

Canvas引入跨域的图片导致toDataURL()报错的问题的解决

【场景】

用户打开网页,则请求腾讯COS(图片服务器)上的图片。使用canvas绘图。

然后,用户可以重新选择图片、裁剪、上传。

【问题】

图片首次载入,选择新图片后裁剪、绘制都没有问题。但上传失败,报错如下:

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

经过了解,需要在图片首次引用时,设置crossOrigin字段:

var c=document.getElementById("cover_show");
                var img=new Image();
                img.src="http://vsqx-cover-xxxxxx.coscd.myqcloud.com/"+this.vsqx_uid+".jpg";
                //增加这一行:
                img.setAttribute("crossOrigin",'anonymous');
                img.onload = function(){
                    var cxt=c.getContext("2d");
                    cxt.drawImage(img,0,0,300,150,0,0,200,126);
                }

然后再次运行。发现图片首次载入时,不显示了。。。

Canvas引入跨域的图片导致toDataURL()报错的问题的解决

控制台报错如下:

Canvas引入跨域的图片导致toDataURL()报错的问题的解决

【最终解决方法】

登录腾讯云COS,找到这个储存桶,设置“跨域访问CORS”。(其他PHP/JAVA服务器同理)

Canvas引入跨域的图片导致toDataURL()报错的问题的解决

再次测试:图片显示成功,图片上传成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3盒子模型详解
Apr 24 HTML / CSS
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
Jun 03 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
Sep 02 HTML / CSS
CSS3选择器新增问题的实现
Jan 21 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
May 03 HTML / CSS
HTML5新增加标签和功能概述
Sep 05 HTML / CSS
移动端Html5中百度地图的点击事件
Jan 31 HTML / CSS
使用html5实现表格实现标题合并的实例代码
May 13 HTML / CSS
html5手机键盘弹出收起的处理
Jan 20 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
Apr 26 HTML / CSS
HTML5图片层叠的实现示例
Jul 07 HTML / CSS
HTML5 背景的显示区域实现
Jul 09 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
Sep 19 #HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
Sep 17 #HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 #HTML / CSS
HTML5新标签兼容——> 的两种方法
Sep 12 #HTML / CSS
html5使用canvas压缩图片的示例代码
Sep 11 #HTML / CSS
canvas像素点操作之视频绿幕抠图
Sep 11 #HTML / CSS
HTML5中使用json对象的实例代码
Sep 10 #HTML / CSS
You might like
学习php笔记 字符串处理
2010/10/19 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
php日历制作代码分享
2014/01/20 PHP
php生成shtml类用法实例
2014/12/09 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
stripos函数知识点实例分享
2019/02/11 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
javascript中的event loop事件循环详解
2018/12/14 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
python+flask实现API的方法
2018/11/21 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
幼儿教师考核制度
2014/01/25 职场文书
西柏坡导游词
2015/02/05 职场文书
2015大学迎新标语
2015/07/16 职场文书
售房协议书范本
2015/08/11 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
python基础之while循环语句的使用
2021/04/20 Python
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python