javascript - 跨域图片在canvas中绘制出现问题,怎能解决
伊谢尔伦
伊谢尔伦 2017-04-10 17:40:42
[JavaScript讨论组]

代码是:

var img2 = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d");
    img2.src = src;

    img2.crossOrigin = "Anonymous";

    img2.onload = function() {
         canvas.width = img2.width;
         canvas.height = img2.height;
         ctx.drawImage( img2, 0, 0 );
         console.log(canvas.toDataURL("image/png"));
    }

错误内容是

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(6)
黄舟

放到本地服务器里

天蓬老师

base64图片可以jsonp过来;
早年一个项目用过;

ringa_lee

用jsonp的形式可以解决跨域问题的

巴扎黑

如果图片的服务器不允许跨域访问是无解的。
如果你可以读到图片的二进制文件的话,可以试试把二进制文件直接丢到canvas里

黄舟

canvas使用加载跨域图片的img,除了要设置的crossOrigin属性。
还要看该跨域图片所在的服务器是否允许跨域访问。
所以,你这个明显是要加载图片的服务器不允许跨域。


在服务器上相应头里:设置Access-Control-Allow-Origin为 * ,就可以允许跨域。

迷茫

可能无法解决吧。我尝试了很多办法都不行。有会的吗?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号