Jquery 从<;中提取二进制或base64;img>;
在jQuery/javascript中显示img时,有没有办法访问完整的二进制表示(或其base64编码)?比如Jquery 从<;中提取二进制或base64;img>;,jquery,canvas,same-origin-policy,Jquery,Canvas,Same Origin Policy,在jQuery/javascript中显示img时,有没有办法访问完整的二进制表示(或其base64编码)?比如 <img id="myImage" src="http://someURL/someImage.png" /> 原因是:我想把另一个来源的图像放在画布上并修改它。 将源代码直接放在画布中(请参见),我什么也得不到(同源策略冲突?)。AJAX请求也有同样的问题 我可以(并且已经)修改服务器以允许新的外部源(CORS)。 它可以工作,但是这样的源是一个动态的本地IP,最好是
<img id="myImage" src="http://someURL/someImage.png" />
原因是:我想把另一个来源的图像放在画布上并修改它。
将源代码直接放在画布中(请参见),我什么也得不到(同源策略冲突?)。AJAX请求也有同样的问题
我可以(并且已经)修改服务器以允许新的外部源(CORS)。
它可以工作,但是这样的源是一个动态的本地IP,最好是纯客户端。您可以在这里检查以从映像中获取二进制数据。没有一个。您不能在客户端做任何事情来覆盖相同的源策略(除非您黑客攻击浏览器或自己制作,以防止浏览器在画布上设置污染标志(或者更确切地说是标志:-)) 只要源图像的原点!==页面来源标准要求浏览器设置画布污染,除非源服务器接受来自其他来源的使用。客户端没有解决方案可以解决这个问题(出于“安全原因”) 如果图像参数是HTMLImageElement或 HTMLVideoElement,其来源与输入脚本的不同 原点,或者如果它是位图原点干净的HTMLCanvasElement 标志为false,或者如果它是CanvasRenderingContext2D对象 划痕位图的原点清除标志为false 资料来源: 如果是的话(): 。。。如果划痕位图的原点清除标志设置为false,则 必须引发SecurityError异常 您可以选择:
访问控制允许源站
(最小)标头(如您所做),然后使用图像标记中的属性(
,默认状态为匿名
)-这只是一个请求,由服务器来接受它http://mysite/getImage.cgi|.aspx |.php |?src=其他站点/img
)您可以自己对图像进行低级解析,但在任何情况下,您都需要通过文件API将图像“上载”到客户端,并从那里解析图像,这会给IMHO带来更大的不便(通过自己的服务器充当代理会更简单一些).这取决于使用canvasThanks的同源策略,但正如问题中所述,我正在寻找一种没有服务器端CORSThanks的跨源解决方案。我想[1]是我们的出路。
$('#myImage).getBuffer()