【发布时间】:2015-05-23 23:49:32
【问题描述】:
我想做的是从我的服务器加载图像并将其添加到画布,然后我想保存它。
将图像添加到画布。完毕 当我按下保存时,它会抛出一个错误。
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
我在这里和谷歌上搜索了一些关于这个错误的信息,但我无法解决它。
我正在将 crossOrigin 设置为 Anonymous,因为我阅读了我需要做的事情。
var src = "logo.svg";
fabric.util.loadImage(src, function(img) {
var object = new fabric.Image(img);
object.set({
left: 0,
top: 0
});
object.hasRotatingPoint = true;
object.scaleX = object.scaleY = 1;
canvas.add(object);
canvas.renderAll();
}, null, {crossOrigin: 'Anonymous'});
然后我读到我必须在 .htaccess 中添加一些规则。
Access-Control-Allow-Origin header
所以我在我的域上创建了一个 .htaccess,其中包含以下几行:
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
<FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
然后我检查了 mod_setenvif.c 和 mod_headers.c 是否启用:
<?php if (strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_headers.c') !== false) {
echo 'Yes';
}else{
echo 'No';
} ?>
对于两者我都得到“是”。
任何建议都会很棒。
谢谢
编辑:
我正在尝试将图像从我的服务器添加到画布。
【问题讨论】:
标签: javascript php .htaccess fabricjs