使用Javascript通过图像发送消息

使用Javascript通过图像发送消息,javascript,Javascript,我有两个域,一个包含图像,另一个试图访问此图片。以下用于加载图像的操作: image = new Image(); image.src = "someotherdomain.com/picture.png"; 不过,我也想发回一些信息。由于同源策略,我无法使用AJAX。这就是我想做的: image = new Image(); image.src = "someotherdomain.com/picture.png"; console.log(image.message); // How

我有两个域,一个包含图像,另一个试图访问此图片。以下用于加载图像的操作:

image = new Image(); 
image.src = "someotherdomain.com/picture.png";
不过,我也想发回一些信息。由于同源策略,我无法使用AJAX。这就是我想做的:

image = new Image(); 
image.src = "someotherdomain.com/picture.png";

console.log(image.message); // How can I receive the message from the other server to here?

我无法启用CORS或任何此类功能。

如果要向服务器发送GET请求,只需设置文件的路径即可

image.src = "http://example.com/some.php?message=" + encodeUriComponent("your string here");
现在,服务器可以返回一个像素的gif,它将工作

但是现代浏览器支持使用CORS的Ajax调用,因此如果服务器设置了正确的头以允许您的域,那么您可以使用XMLHttpRequest对象


如果你想发回数据,你需要做一个标记

服务器返回一个脚本,如下所示

myCallback({"hello" : "world"});

如果您正在服务器端生成图像,或者您能够修改图像,则可以将消息添加到图像exif数据中,而不是使用JS在客户端解析和读取图像,如下所示:。(当然,这可能不是发送信息的最聪明、最简单的方式)

不过,我也想发回一些信息。由于同源策略,我无法使用AJAX

不允许从包含跨源的图像读取任何数据,因为完全相同的源策略禁止通过Ajax读取数据。您只能通过为图像文件启用CORS来读取图像数据


另请参见。

什么样的信息?它是否与您正在加载的特定图像相关?不,它只是一条任意消息。那么,图像是否与问题相关,或者问题只是“如何加载跨域消息?”我想通过图像加载跨域消息,这就是问题所在。您为什么不能启用CORS?对不起,我想换个方式加载。服务器如何发送消息,客户端如何读取消息。不一定有使用图像发送数据的方法,但效率低下。
myCallback({"hello" : "world"});