这篇文章主要介绍了怎么解决帆布绘图时遇到的跨域问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
当在画布中绘制一张外链图片时,我们会遇到一个跨域问题。
示例如下:
& lt; !DOCTYPE html> & lt; html lang=癳n"祝辞 & lt; head> & lt;元charset=癠TF-8"祝辞 & lt; title> crossorigin & lt;/head> & lt; body> & lt;画布的宽度=?00”;身高=?00”;id=癱anvas"祝辞& lt;/canvas> & lt; img id=癷mage"alt=?“在 & lt; script> 画布var=. getelementbyid(& # 39;帆布# 39;); var ctx=canvas.getContext (& # 39; 2 d # 39;); var=新形象形象(); 的形象。onload=function () { ctx。drawImage(图像,0,0); . getelementbyid(& # 39;图像# 39;)。src=https://www.yisu.com/zixun/canvas.toDataURL ('/png图像'); }; 的形象。src=' https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3497300994, 2503543630 fm=27 gp=0. jpg ';> 脚本 身体>
当在浏览器中打开这个页面时,你会发现这个问题:
未捕获DOMException:未能执行& # 39;toDataURL& # 39;> & lt; !DOCTYPE html> & lt; html lang=癳n"祝辞 & lt; head> & lt;元charset=癠TF-8"祝辞 & lt; title> crossorigin & lt;/head> & lt; body> & lt;画布的宽度=?00”;身高=?00”;id=癱anvas"祝辞& lt;/canvas> & lt; img id=癷mage"alt=?“在 & lt; script> 画布var=. getelementbyid(& # 39;帆布# 39;); var ctx=canvas.getContext (& # 39; 2 d # 39;); var=新形象形象(); image.setAttribute (& # 39; crossorigin& # 39;, & # 39;匿名# 39;); 的形象。onload=function () { ctx。drawImage(图像,0,0); . getelementbyid(& # 39;图像# 39;)。src=https://www.yisu.com/zixun/canvas.toDataURL ('/png图像'); }; 的形象。src=' https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3497300994, 2503543630 fm=27 gp=0. jpg ';> 脚本 身体>
对比上面两段JS代码,你会发现多了这一行:
image.setAttribute (& # 39; crossorigin& # 39; & # 39;匿名# 39;);就是这么简单,完美的解决了!
感谢你能够认真阅读完这篇文章,希望小编分享怎么解决帆布绘图时遇到的跨域问题内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!
怎么解决帆布绘图时遇到的跨域问题