www.baike369.com
百科369 > Ajax教程 > XMLHttpRequest(XHR)对象请求报头(setRequestHeader()方法)

XMLHttpRequest(XHR)对象请求报头(setRequestHeader()方法)


XMLHttpRequest(XHR)对象请求报头(setRequestHeader()方法)

在传统的JavaScript通信方式中,一个非常重要的遗漏就是缺乏控制请求的能力,特别是设置任何所需要的报头的能力。XHR提供了一个setRequestHeader()方法来做这样的操作。基本语法如下:

xhr.setRequestHeader("header-name","header-value");
  • header-name:是传输报头的字符串。
  • header-value:是对应值的字符串。

不管是标准报头还是自定义报头,都可以使用这个方法来进行设置。

根据HTTP约定,当设置自定义报头时,报头将会典型地使用“X-”的前缀。例如,在这里把表示使用的JavaScript传输模式的报头设置为采用XHR的方式:

xhr.setRequestHeader("X-JS-Transport","XHR");

这个setRequestHeader()方法可以多次使用,并且当正确使用时,它应该把值追加到原来的值中:

xhr.setRequestHeader("X-Client-Capabilities","Flash");
xhr.setRequestHeader("X-Client-Capabilities","24bit-color");
// Header should be X-Client-Capabilities: Flash, 24bit-color

和在前面显示的相同,最有可能为人所知的HTTP报头,就是Content-Type报头,当在传输数据时,它是必须的:

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

这个方法也可以用于GET请求,用于设置报头在缓存了XHR请求的浏览器中影响缓存控制(cache control)。这个指令可以在客户端完成,它把HTTP的请求报头If-Modified-Since设置为过去的某个日期,代码如下:

xhr.setRequestHeader("If-Modified-Since", "Wed, 15 Nov 1995 04:58:08 GMT");

这仅仅是setRequestHeader()方法的另一个常见的例子。

Copyright© 2011-2016 www.baike369.com All Rights Reserved