在HTML页面上,在单击图像("img")或锚点("a")标记的链接时,我想为GET请求添加自定义标头.这些链接通常用于下载动态内容.这些标头可以是SAML标头或自定义应用程序特定标头.
是否可以通过JavaScript添加这些自定义标头?或者,如果我通过XMLHttpRequest添加这些,我如何实现下载功能?
此要求仅适用于IE6或7.
如果你正在使用XHR,那么setRequestHeader
应该工作,例如
xhr.setRequestHeader('custom-header', 'value');
PS你应该使用Hijax修改你的锚的行为,以便它可以工作,如果由于某种原因AJAX不适合你的客户端(如页面上其他地方的破坏脚本).
我认为最简单的方法是使用查询字符串而不是HTTP标头.
从浏览器内部向请求添加标头的唯一方法是使用XmlHttpRequest setRequestHeader方法.
使用此"GET"请求将下载资源.然后,技巧是以预期的方式访问资源.表面上你应该能够允许GET响应在短时间内缓存,因此导航到新URL或使用src url创建IMG标记应该使用前一个"GET"的缓存响应.然而,这很可能会失败,特别是在IE中,对于缓存而言,这可能是一个法律本身.
最终我同意Mehrdad,使用查询字符串是最简单和最可靠的方法.
另一个古怪的选择是使用XHR向URL发出请求,指示您访问资源的意图.它可以使用会话cookie进行响应,该会话cookie将由后续的图像或链接请求携带.