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特性绘制简易版围棋效果
Sep 28 HTML / CSS
CSS类名支持中文命名的示例
Apr 04 HTML / CSS
css3实现3d旋转动画特效
Mar 10 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
May 17 HTML / CSS
CSS3的 fit-content实现水平居中
Sep 07 HTML / CSS
css3实现二维码扫描特效的示例
Oct 29 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
HTML5 placeholder(空白提示)属性介绍
Aug 07 HTML / CSS
详解HTML5中div和section以及article的区别
Jul 14 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
Mar 24 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 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
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
vue+SSM实现验证码功能
2018/12/07 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
linux下安装easy_install的方法
2013/02/10 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python模拟斗地主发牌
2020/04/22 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
创业培训计划书
2014/05/03 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
2015年试用期工作总结
2014/12/12 职场文书
放假通知
2015/04/14 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书