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参考手册和CSS3代码生成工具加速来学习网页制
Jul 11 HTML / CSS
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
实例教程 纯CSS3打造非常炫的加载动画效果
Nov 05 HTML / CSS
用css3实现转换过渡和动画效果
Mar 13 HTML / CSS
HTML5使用Audio标签实现歌词同步的效果
Mar 17 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 HTML / CSS
用HTML5.0制作网页的教程
May 30 HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
Mar 10 HTML / CSS
前端实现打印图像功能
Aug 27 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
Aug 13 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网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
jquery ajax post提交数据乱码
2013/11/05 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
python得到windows自启动列表的方法
2018/10/14 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
如何对python的字典进行排序
2020/06/19 Python
Python 如何实现访问者模式
2020/07/28 Python
Python类型转换的魔术方法详解
2020/12/23 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
Servlet方面面试题
2016/09/28 面试题
市场营销专业个人自荐信格式
2013/09/21 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
暑期实践思想汇报
2014/01/06 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书