使用JavaScript添加自定义HTTP标头

在HTML页面上,点击图片链接(“img”)或锚点(“a”)标签,我想为GET请求添加自定义标头。 这些链接通常用于下载dynamic内容。 这些标题可以是SAML标题或自定义应用程序特定的标题。

是否有可能通过JavaScript添加这些自定义标题? 或者,如果我通过XMLHttpRequest添加这些,我该如何实现下载function?

此要求仅适用于IE6或7。

如果你正在使用XHR ,那么setRequestHeader应该工作,例如

 xhr.setRequestHeader('custom-header', 'value'); 

PS你应该使用Hijax来修改你的锚的行为,以便它可以工作,如果由于某种原因,AJAX不能为你的客户(例如页面上其他地方的破坏脚本)工作。

我认为最简单的方法是使用查询string而不是HTTP头。

将头添加到浏览器中的请求的唯一方法是使用XmlHttpRequest setRequestHeader方法。

对“GET”请求使用这个将会下载资源。 接下来的技巧是以预期的方式访问资源。 表面上你应该可以让GET响应在短时间内被caching,因此导航到一个新的URL或者创build一个带有src url的IMG标签应该使用前面“GET”的caching响应。 然而,这很可能会失败,尤其是在IE浏览器中,这对于caching而言本身可能是一个法律本身。

最后我同意Mehrdad,使用查询string是最简单也是最可靠的方法。

另一个古怪的select是使用XHR向URL发出请求,表明您有意访问资源。 它可以用一个会话cookie进行响应,这个cookie将被随后的图像或链接请求所携带。

如前所述,最简单的方法是使用查询string。

但是,如果你不能,由于安全原因,你应该考虑使用cookie。

这篇由Mozilla开发者networking撰写的文章可以帮助你!

根据上面的文章:

 // adds "X-Hello: World" header to the request httpChannel.setRequestHeader("X-Hello", "World", false); 

应该完成你正在做的事情。