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实战第一波 让我们尽情的圆角吧
Aug 27 HTML / CSS
纯css3实现走马灯效果
Dec 26 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
Jan 09 HTML / CSS
css3给背景图片加颜色遮罩的方法
Nov 05 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
Jan 07 HTML / CSS
简单整理HTML5的基本特性和语法
Feb 18 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
Oct 08 HTML / CSS
AmazeUI 图标的示例代码
Aug 13 HTML / CSS
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
Aug 07 HTML / CSS
css布局巧妙技巧之css三角示例的运用
Mar 16 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的库,结果发现很多东西
2006/12/31 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
JavaScript 拖拉缩放效果
2008/12/10 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
pandas通过索引进行排序的示例
2018/11/16 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Python实现验证码识别
2020/06/15 Python
用python实现学生管理系统
2020/07/24 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
创先争优承诺书范文
2014/03/31 职场文书
求职自我推荐信
2014/06/25 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
MySql开发之自动同步表结构
2021/05/28 MySQL
Go语言grpc和protobuf
2022/04/13 Golang