【问题标题】:CORS is enabled but toDataURL still throws a warningCORS 已启用,但 toDataURL 仍会引发警告
【发布时间】:2014-02-13 06:43:03
【问题描述】:

正如标题所说,我已为所有图像启用了 CORS,但在尝试将它们放到画布上然后提取该画布(Chrome 和 FF)时,我仍然遇到错误。我在其中一张图片上运行了一个小嗅探器来测试它,它似乎实际上返回了正确的标题:

访问控制允许来源:*

我错过了什么吗?

【问题讨论】:

  • ...您还在图像对象上指定 crossOrigin="anonymous" 属性?如果是这样,那不是问题,我们需要更多代码。
  • 这解决了问题,@markE。谢谢你。我也在尝试使用 PaintbrushJS 为这些图像着色,但现在它给了我“跨源资源共享策略拒绝了跨源图像加载”。任何想法?编辑:似乎可能是因为我所有的图像都是通过 JS 动态加载的。

标签: javascript canvas cross-domain cors todataurl


【解决方案1】:

您需要请求服务器使用CORS,只需将此属性添加到图像标签:

<img crossOrigin="anonymous" ... />

或从 JavaScript 动态地使用它作为属性(假设 img 已创建或获得):

var img = new Image;
img.onload = callback;
img.crossOrigin = '';   /// = anonymous
img.src = '...';

如果您要加载多个图像,您可以使用支持跨域请求的图像加载器(例如我的YAIL loader,您可以请求使用 CORS 加载所有或单个图像)。

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 2017-04-29
    • 2018-07-19
    • 2021-10-22
    • 1970-01-01
    • 2021-12-29
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多