- 其他链接
一、 如何使用XMLHttpRequest
1.1 设置请求头(Request Header)
xhr.setRequestHeader(key,value):设置自定义的请求头部信息。
- 接受两个参数:
key:头部字段的名称value:头部字段的值
- 要成功发送请求头部信息,必须在调用
open()方法之后且调用send()方法之前调用setRequestHeader()。setRequestHeader可以调用多次,最终的值不会采用覆盖override的方式,而是采用追加append的方式。
//...
xhr.open("get", "example.php", true);
xhr.setRequestHeader("MyHeader", "MyValue1");
xhr.setRequestHeader("MyHeader", "MyValue2");
// 最终request header中"MyHeader"为: MyValue1, MyValue2
xhr.send(null);
1.2 获取请求头(Request Header)
xhr.getResponseHeader(name):获取某个指定header字段的值。
- 接受一个参数:
name- 头部字段名称。
var myHeader = xhr.getResponseHeader("MyHeader");
xhr.getAllResponseHeaders():获取response中的所有header字段。
var allHeaders = xhr.getAllResponseHeaders();
- 返回如下所示的多行文本内容:
Date: Sun, 14 Nov 2004 18:04:03 GMT
Server: Apache/1.3.29 (Unix)
Vary: Accept
X-Powered-By: PHP/4.3.8
Connection: close
Content-Type: text/html; charset=iso-8859-1

1.3 xhr.overrideMimeType()
xhr.overrideMimeType(mime):重写XHR响应的MIME类型。- 调用
overrideMimeType()必须在send()方法之前,才能保证重写响应的MIME类型。 - 支持
overrideMimeType()方法的浏览器有Firefox、Safari 4+、Opera 10.5和Chrome。
- 调用
- 例:
- 服务器返回的
MIME类型是text/plain,但数据中实际包含的是XML。 - 根据
MIME类型,即使数据是XML,responseXML属性中仍然是null。 - 通过调用
overrideMimeType()方法,可以保证把响应当作XML而非纯文本来处理。
var xhr = new XMLHttpRequest(); xhr.open("get", "text.php", true); xhr.overrideMimeType("text/xml"); xhr.send(null); - 服务器返回的