Ajax的很重要的一个技术(或者称之为一个对象)就是XMLHttpRequest对象.通过该对象实现了对服务器的异步访问,同时改善了用户体验.
7.0版本的IE已经把XMLHttpRequest作为window对象的一个属性使用了.
下面重点看以下该对象的一些重要的方法和属性:
先看属性:
(1)onreadystatechange:设置或响应异步请求的所有事件,往往将一个javascript的回调函数对其赋值.
(2)readyState:接收请求操作的当前状态。0:未初始化;1:准备请求;2:请求中;3:接收响应;4:完成(请求并接收响应完成)
(3)responseBody:以字节数组的形式返回响应内容
(4)responseText:以字符串的形式返回响应内容
(5)responseXml:以DOM形式返回响应内容
(6)status:接收HTTP响应的状态码。
以下是从MSDN上找的所有的状态码,其中比较常用的我已经用红色标注
100
Continue
101
Switching protocols
200
OK
201
Created
202
Accepted
203
Non-Authoritative Information
204
No Content
205
Reset Content
206
Partial Content
300
Multiple Choices
301
Moved Permanently
302
Found
303
See Other
304
Not Modified
305
Use Proxy
307
Temporary Redirect
400
Bad Request
401
Unauthorized
402
Payment Required
403
Forbidden
404
Not Found
405
Method Not Allowed
406
Not Acceptable
407
Proxy Authentication Required
408
Request Timeout
409
Conflict
410
Gone
411
Length Required
412
Precondition Failed
413
Request Entity Too Large
414
Request-URI Too Long
415
Unsupported Media Type
416
Requested Range Not Suitable
417
Expectation Failed
500
Internal Server Error
501
Not Implemented
502
Bad Gateway
503
Service Unavailable
504
Gateway Timeout
505
HTTP Version Not Supported
(7)statusText:接收HTTP友好的状态提示
再看方法:
(1)abort():取消当前的请求。
(2)getAllResponseHeader():返回完整的响应的头列表内容
(3)gerResponseHeader():返回特定的响应头内容
(4)open():定义了当前请求的方法(GET.POST.PUT),目标URL和是否异步请求以及请求使用的用户信息等。
(5)send():发送请求
(6)setRequestHeader():自定义请求头部内容
再来看看XMLHttpRequest和服务器交互的步骤:
(1)首先在使用该对象之前,要先初始化:对于IE7之前的版本:
var oReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");当然可以用传统的方法:function createXmlHttp(){ if(window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest();//mozilla浏览器 } else if(window.ActiveXObject) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE旧版本 } catch(e) { } try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本 } catch(e) { } if(!xmlHttp) { window.alert("不能创建XMLHTTPREQUEST对象!"); return false; } }}(2)初始化完成之后,要指定请求事件发生后客户端要响应的回传方法(往往是javascript方法)xmlHttp.onreadystatechange=function;(3)定义请求:xmlHttpRequestobject.open("访问方法”,目标地址(绝对或相对路径都可以),异步与否(一般为true))(4)向服务器发送请求:xmlhttpRequestObject.send(请求时传递到服务器的内容(可选,如果有,在open方法中访问方法参数一定是post),如果没有为null )这只是XMLHttpRequest的简单的介绍,关于ajax的另外一些技术,如有高见,请留言交流。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sdtsfhh/archive/2007/05/11/1604723.aspx