【发布时间】:2019-03-07 01:25:47
【问题描述】:
我有一个图像编辑器,我正在尝试向其中添加外部图像。
当我将 crossOrigin 属性添加到 img 对象时,它无法在画布上加载图像,并且我在控制台中收到错误“加载时出错 https://i.ytimg.com/vi/JphpLkmimVo/hqdefault.jpg”。如果我删除 crossOrigin 它允许添加图像但是当我将画布导出为图像时出现安全错误。我读过在没有 crossOrigin 的情况下添加它会污染画布。谁能告诉我为什么我可以只保留 crossOrigin 属性?
var stockImageSrc = 'https://i.ytimg.com/vi/JphpLkmimVo/hqdefault.jpg';
fabric.Image.fromURL(stockImageSrc, function (oImg) {
oImg.setWidth(640);
oImg.setHeight(390);
canvas.add(oImg);
canvas.renderAll();
}, { crossOrigin: '' });
【问题讨论】:
-
远程站点需要允许您在您的域上以这种方式使用他们的图像 - 他们必须这样做,这没什么你可以决定。
-
@CBroe 据我所知,这些图片是 YT 缩略图,是从他们的 API 返回的,旨在用于不同的域。有没有办法判断他们是否不允许这样做?
-
您显示的示例 URL 未发送任何 CORS 标头。所以不,它似乎不是为了以这种方式使用而设计的。我建议您查看他们的文档/常见问题解答,看看他们是否在任何地方提到了 CORS。
标签: javascript html canvas html5-canvas fabricjs