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系列教程:背景图片(背景大小和多背景图) 应用说明
Dec 19 HTML / CSS
浅析几个CSS3常用功能的写法
Jun 05 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
Mar 01 HTML / CSS
HTML5标签小集
Aug 02 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
Jan 30 HTML / CSS
检测浏览器是否支持html5视频的代码
Mar 28 HTML / CSS
基于html5实现的图片墙效果
Oct 16 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
Jan 11 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
Html5页面内使用JSON动画的实现
Jan 29 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
Jun 04 HTML / CSS
boostrap modal 闪现问题的解决方法
Sep 01 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实现防盗链的方法分析
2017/07/25 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
js实现图片实时时钟
2020/01/15 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
python33 urllib2使用方法细节讲解
2013/12/03 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python图形用户接口实例详解
2019/12/16 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
python 实现的车牌识别项目
2021/01/25 Python
美国NBA官方商店:NBA Store
2019/04/12 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
大客户销售经理职责
2013/12/04 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
高中生操行评语
2014/04/25 职场文书
环卫工人节活动总结
2014/08/29 职场文书
银行先进个人总结
2015/02/15 职场文书
2016年寒假家长评语
2015/10/10 职场文书
导游词之湖北武当山
2019/09/23 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技