JavaScript XMLHttpRequest对象学习

本文详细介绍了XMLHttpRequest对象的创建方法、核心属性与方法,包括open()、send()等关键API的使用方式及其注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 创建XMLHttpRequest对象

    var xmlHttp;

    function createXMLHttpRequest() {

       if (window.ActiveXObject) {

           xmlHttp = new ActiveXObject("Microsoft.XMLHttp");

       } else if (window.XMLHttpRequest) {

            xmlHttp = new XMLHttpRequest();

        }

    }

  2. XMLHttpRequest属性和方法

        方法open():

            创建一个http请求,并指定此请求的方法、url及验证信息

            语法:XMLHttpRequest.open(reqMethod, url, async, user, password);

            参数:

                reqMethod: http请求方法,例如:post, get, put;大小写不敏感

                url: 请求的url地址

                async:布尔型,指定此请求是否为异步方式,默认为true。如果为true,当状态改变时会调用onreadystatechange属性指定的回调函数

                uer, password : 如果服务器需要验证,此处指定用户名和密码;若未指定,服务器需验证时,会弹出验证窗口

            范例:

                xmlHttp.open("GET", "http://localhost:8080/example.html", false );    

        方法send()

            发送请求到服务器并接受回应

            语法:XMLHttpRequest.send(varBody);

            参数:

                varBody:欲通过此请求发送的数据

            备注:

                此方法的同步或异步方式,取决于open()方法中的async参数;如果async为false,此方法将会等待请求完成或者超时时才会返回;如果async为true,此方法将立即返回。

        方法getAllResponseHeader()

            获取响应的所有http头

            语法:var strValue = XMLHttpRequest.getAllResponseHeaders  

            备注:

                每个http头名称和值用冒号分隔,并以\r\n结束;

                当send()方法完成后才可调用

        方法getResponseHeader():

            从响应信息中获取指定的http头

            语法:var strValue = XMLHttpRequest.getResponseHeader(bstrHeader);

            参数:

                bstrHeader : http头名称

             备注:

                当send()方法成功后才可调用该方法;

             范例:

                如若服务器返回的文档类型为“text/xml”:

                var strValue = xmlHttp.getResponseHeader("Content-Type"); // text/xml

                如若获取完整的http头信息,借助getAllResponseHeader()方法

        属性onreadystatechange

            指定当readyState属性改变时的事件处理句柄

            语法:XMLHttpRequest.onreadystatechange = funcMyHandler;

        属性readyState

            返回XMLHttpRequest的当前状态

            语法:var value = xmlHttpRequest.readyState

            备注:

                此属性只读,状态用长度为4的整型表示,定义如下:

                    0:未初始化,对象已建立,但是尚未初始化(尚未调用open()方法)

                    1 : 初始化,对象已建立,尚未调用send()方法

                    2:发送数据,send()方法已调用,但是当前的状态及http头未知

                    3:数据传送中,已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出错误

                    4:完成,数据接收完毕,此时可以通过responseBody和responseText获取完整的响应数据

        属性responseBody

            返回某一格式的服务器响应数据

            语法:var value = xmlHttpRequest.responseBody;

            备注:

                    此属性只读,以unsigned array格式表示直接从服务器返回的未经解码的二进制数据

        属性responseStream

            以Ado Stream对象的形式返回响应信息

            语法:var value = xmlHttpRequest.responseStream;

            备注:

                此属性只读,以Ado Stream对象的形式返回响应信息

        属性responseText

            将响应信息作为字符串返回

            语法:var value = xmlHttpRequest.responseText;

            备注:

                此属性只读,将响应信息作为字符串返回。XMLHttp尝试将响应信息解码为Unicode字符串

        属性status

            返回当前请求的http状态码

            语法:var value = xmlHttpRequest.status;

            备注:

                长整型标准http状态码,定义如下:

                    100 : continue

                    101:Switching protocols

                    200:OK

                    201:created

                    202:Accepted

                    ...



转载于:https://my.oschina.net/u/1251536/blog/413840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值