免责声明:这更像是一个普遍的兴趣问题,而不是我实际上正在考虑的事情,因为实现相同的事情的方法较少。
但是,出于好奇:
我可以使用JavaScript创建自定义<img ...>
标记,浏览器将进行访问。通过适当地选择图像的src
属性的URL,这在技术上允许我执行任意服务器查询,如果我的Web服务器不仅仅为url-request返回静态图像文件,但实际上是它通过某种形式的GET
- servlet。
这样做的好处在于它几乎可以在任何支持图像的浏览器中用于跨域请求,而不会为JSONP所带来的任何漏洞打开自己的位置。
问题是我无法从这种服务器查询中返回任何数据,因为跨域策略通常会阻止对图像的任何像素访问...
或者我可以吗?
我应该能够通过生成具有一定宽度和高度的空白图像来至少返回1到1000或更大范围内的两个小的无符号整数,然后浏览器允许我检索无论图像在何处加载,是吗?
我是否可以使用其他此类技巧与图像一起发送更多信息?在尝试获取信息时我会面临哪些限制?
例如,服务器在返回图像时是否可以设置cookie?如果是这样,我可能只能从同一个域访问该cookie,对吧?因此,它不适用于跨站点脚本(除非客户端不需要关心cookie中的信息,但服务器确实如此)。
或者,作为另一个示例,我是否可以通过让服务器以重定向方式回复来以某种方式更改图像src
,以便我可以在JavaScript中检索重定向目标?
欢迎疯狂的想法! ;)
注意:
这个问题不意味着非常广泛(收到关闭请求?!?):HTML img
标记只有非常有限的属性可以被操作由服务器然后由客户端读取。图像的宽度和高度实际上可能是唯一的(至少我找不到任何其他的)。我只想问是否还有更多。那里应该只有很少的其他属性,如果有的话。