我正试着和jCrop和canvas合作。
与其将图像发送到服务器,然后再用裁剪后的图像返回,我尝试使用画布直接对其进行裁剪,因为结果是,我在base64图像中转换裁剪并发送到服务器。
我有一个例子JSFiddle。
我裁剪图像,然后在画布中转换,但我不能在base64中转换图像。出现以下错误:
"SecurityError: The operation is insecure."我试过..。
console.log(canvas.toDataURL());我做错了什么?
发布于 2013-10-30 18:18:52
一般来说,这个问题是由于CORS (跨源资源共享)需求没有得到满足。
为了避免这种情况,您可以:
crossOrigin属性请求跨源使用此外:
file://协议,而是使用轻型本地服务器(即。猫鼬)否则,每次使用toDataURL (或getImageData)时都会收到一个安全错误。
关于从外部服务器请求CORS使用:您只能请求这样的使用,但这取决于服务器是否授予权限。
请求下列任何一项:
<img src="..." crossOrigin="anonymous" >或者来自JavaScript:
var img = new Image;
img.onload = handleOnLoad;
img.crossOrigin = 'anonymous';
img.src = '...';如果拒绝,图像将根本不会加载。
发布于 2014-01-16 20:22:01
我有这个问题。问题是,当你在画布上已经有了什么东西,然后把其他东西放在上面,它就会被污染。我的解决办法是删除画布元素并替换它,然后在其上放置一个新的图像。
https://stackoverflow.com/questions/19690673
复制相似问题