拦截浏览器的图像加载请求

时间:2011-07-15 13:13:58

标签: javascript browser http-headers image-loading

我想知道是否有办法拦截浏览器的图像加载请求并添加服务器期望的一些请求标头。

实际情况是这样的。 Web应用程序将XHR发送到服务器并完成身份验证握手。所有后续请求都必须包含auth标头。图像被破坏,因为浏览器不会发送图像请求的标题。

提前致谢。

3 个答案:

答案 0 :(得分:4)

您可以使用带有相应标头的AJAX请求图像。然后,您必须对图像二进制文件进行base64编码,然后通过设置

将其插入到DOM中
<img src="data:image/png;base64,[base64 encoded image]" />

答案 1 :(得分:1)

不,没有办法做到这一点,这也是一件非常好的事情。

(好吧,没有办法从你的代码中做到这一点。当然,浏览器所有者可以安装一个可以改变请求的工具。)

浏览器以自己严格的方式发出脚本和图像的HTTP请求这一事实意味着使用XHR的站点可以通过让服务器拒绝某些请求来阻止某些类型的CSRF攻击(跨站请求伪造)包括网站自己的XHR代码添加的特殊标题。

您无法准确控制浏览器对表单帖子的标题所做的操作。

答案 2 :(得分:1)

有一种方法可以在浏览器中拦截图像请求:查看Mobify.js中的捕获API:https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/