我正在编写一个应用程序,用户可以上传图像,在其上绘图并保存结果。我试图通过使用canvas元素并使用上传的图像作为其背景来实现此目的。我正在通过ImageService检索图像。以下是初始化画布的客户端代码:
var image = new Image();
image.src = "http://some.google.domain.com/foobar123";
var ctx = canvas.getContext('2d')
image.onload = function() {
ctx.drawImage(image, 0, 0);
};
现在用户可以在图像上绘制内容。
然后当用户想要保存图像时,我打电话给:
canvas.toDataURL("image/png")
这会在Chrome中出现此错误:
Error: SecurityError: DOM Exception 18.
"Error: An attempt was made to break through the security policy of the user agent."
我认为Chrome不喜欢它,因为图片是从某个谷歌域提供的,这与我的应用引擎应用的域名不同。
有解决方法吗?
提前致谢。
答案 0 :(得分:0)
作为一种解决方法,我现在使用BlobstoreService来提供图像数据而不是ImageService。此方法提供与我的应用相同的域中的图片,但您将失去使用Google静态图片服务基础架构的所有好处。