XMLHttpRequest介绍

来源:互联网 发布:淘宝客软件哪个好 编辑:程序博客网 时间:2024/04/30 23:05

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

原创粉丝点击