- 其他链接
一、 如何使用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);
- 服务器返回的