XMLHttpRequest介绍

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的另外一些技术,如有高见,请留言交流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值