我怎么能"getImageData”;从另一个网站?SECURITY_ERR:DOM异常18

How can i "getImageData" from another website? SECURITY_ERR: DOM Exception 18

本文关键字:ERR SECURITY 异常 DOM 另一个 quot 怎么能 getImageData 网站      更新时间:2023-09-26

我正在开发一个在线应用程序来处理图像。当使用本地文件(在服务器上)时,它工作得很好,但当我尝试使用另一个源时,它就坏了。这似乎是一个安全限制的原因,来自whatwg:

无论何时使用正确的参数调用原点clean标志设置为false的画布元素的2D上下文的getImageData()方法,该方法都必须引发SECURITY_ERR异常。

所以我想知道我能以某种方式绕过这件事吗?这些图片都来自谷歌API,如果可以的话,我真的想跳过保存图片。

谢谢。

由于您可能无法访问从中提取源映像的服务器,因此最好通过服务器代理文件。

从本质上讲,您向服务器发送一个AJAX请求,其中包含您想要数据的图像的URL。您的服务器收到请求并代表您索要图像。当它获得该文件时,它会对其进行base64编码并将数据发回给您。由于图像数据只是一个字符串,您可以从中创建一个图像对象,并通过canvas对其进行操作,而无需担心原始域。

如果你愿意使用jQuery,这里有一个很棒的插件可以做到这一点:http://www.maxnov.com/getimagedata/

我以前使用过这个插件,效果非常好。我会注意到,您应该(必须)在自己的服务器上托管代理服务器代码。您可以使用作者的appspot帐户,但每天的查询次数有限,而且经常会用完。作者在这里解释了如何自己托管代理代码:http://www.maxnov.com/getimagedata/#using-您自己的服务器