2

我将图像托管在服务器上,而 KineticJS 应用程序在另一台服务器上运行。

问题:尝试时stage.toDataURL(),我收到 CORS 错误:

Uncaught Error: SECURITY_ERR: DOM Exception 18 

在此处输入图像描述

我已调整 Apache 以允许 CORS

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
Header set Access-Control-Allow-Methods "GET, PUT, POST, DELETE"

当图像卷曲时,我得到

HTTP/1.1 200 OK
Date: Sat, 26 Jan 2013 21:29:35 GMT
Server: Apache
Last-Modified: Sat, 26 Jan 2013 21:27:19 GMT
Accept-Ranges: bytes
Content-Length: 166812
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods: GET, PUT, POST, DELETE
Content-Type: image/jpeg

但是SECURITY_ERR错误仍然发生!

是否需要执行另一个步骤来.toDataURL()处理来自另一个域的图像,可能使用跨域标签?

4

1 回答 1

1

看看这个问题

(eduardo-martos) 您是否尝试从具有来自不同域的图像的画布生成 dataUrl?如果这是您的情况,那么您在前端无能为力。您后端的代理可能是解决方案。

引用链接教程

注意: toDataURL() 方法要求在画布上绘制的任何图像都托管在与执行它的代码具有相同域的 Web 服务器上。如果不满足此条件,则会引发 SECURITY_ERR 异常。

于 2013-01-30T08:32:56.953 回答