AJAX----核心XMLHttpRequest对象介绍
来源:互联网 发布:知满天教育官网 编辑:程序博客网 时间:2024/05/20 21:42
在上篇文章中,我们都知道了AJAX是实现异步通信的,在不刷新界面的情况下,更新数据。XMLHttpRequest是AJAX的基础,又重点学习了一下。当然还是按照经典的5步来学习!
首先再次了解XMLHttpRequest对象的属性和方法。表格内容引用这里
0:未初始化。对象已创建,未调用open;
1:open方法成功调用,但Sendf方法未调用;
2:send方法已经调用,尚未开始接受数据;
3:正在接受数据。Http响应头信息已经接受,但尚未接收完成;
4:完成,即响应数据接受完成。 Onreadystatechange 请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。 responseText 服务器响应的文本内容 responseXML 服务器响应的XML内容对应的DOM对象 Status 服务器返回的http状态码。200表示“成功”,404表示“未找到”,500表示“服务器内部错误”等。 statusText 服务器返回状态的文本信息。
Method:表示http请求方法,一般使用”GET”,”POST”.
url:表示请求的服务器的地址;
asynch:表示是否采用异步方法,true为异步,false为同步;
后边两个可以不指定,username和password分别表示用户名和密码,提供http认证机制需要的用户名和密码。 Send(content) 向服务器发出请求,如果采用异步方式,该方法会立即返回。content可以指定为null表示不发送数据,其内容可以是DOM对象,输入流或字符串 SetRequestHeader(String header,String Value) 设置HTTP请求中的指定头部header的值为value.此方法需在open方法以后调用,一般在post方式中使用。 getAllResponseHeaders() 返回包含Http的所有响应头信息,其中相应头包括Content-length,date,uri等内容。返回值是一个字符串,包含所有头信息,其中每个键名和键值用冒号分开,每一组键之间用CR和LF(回车加换行符)来分隔! getResponseHeader(String header) 返回HTTP响应头中指定的键名header对应的值 Abort() 停止当前http请求。对应的XMLHttpRequest对象会复位到未初始化的状态。
有了了解之后,我们依然按照5步方法来实现一个例子。
<body> <input type="button" value="提交" onclick="Ajax()"></input> <div id="result"></div></body>
接下来就是完成Ajax()函数,先定义一个
function Ajax(){}
通过该函数来异步获取信息,步骤如下:
- 第一步:创建异步XMLHttpRequest对象
var xmlHttpReq = null; if(window.ActiveXObject){ // IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest对象的 xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest){ // 除IE5 IE6 以外的浏览器 XMLHttpRequest是window的子对象 xmlHttpReq = new XMLHttpRequest();// 实例化一个XMLHttpRequest对象 }
- 第二步:实例化成功后,使用open()方法初始化XMLHttpRequest对象,指定HTTP方法和要使用的服务器url,代码如下
xmlHttpReq.open("get","xmlhttpreq.php",true);
默认情况下,使用XMLHttpRequest对象发送的HTTP请求是异步进行的,但是可以显式地把async参数设置为true,如上面所示。
- 第三步:因为要做一个异步调用,所以需要注册一个XMLHttpRequest对象将调用的回调事件处理器当它的readyState值改变时调用。让readyState值改变时,会激发一个readystatechange事件,可以使用onreadystatechange属性来注册该回调事件处理器,代码如下:
xmlHttpReq.onreadystatechange=RequestCallBack;// 设置回调函数
- 第四步:使用send()方法发送该请求,因为这个请求使用的是HTTP的get方式,所以可以在不指定参数或使用null参数的情况下调用send()方法,代码如下:
xmlHttpReq.send(null);// 因为使用get方式提交数据,所以可以使用null作为参数调用
- 第五步:当请求状态改变时,XMLHttpRequest对象调用onreadystatechange属性注册的事件处理器。因此,在处理该相应之前,事件处理器应该首先检查readyState的值和HTTP状态。当请求完成加载(readyState的值为4)并且响应已经成功(HTTP状态值200)时,就可以调用一个JavaScript函数,处理该响应内容。代码如下:
//一旦readyState值改变,将会调用该函数 function RequestCallBack(){ if (xmlHttpReq.readyState==4) { if (xmlHttpReq.status ==200) { // 将xmlHttpReq.responseText的值赋予id为result的元素 document.getElementById('result').innerHTML = xmlHttpReq.responseText; } } }
最后,单击“提交”按钮后,会发现网页上出现了如下内容,这样就完成了一个Ajax调用。
其中php页面是:
<?php header('content-type:text/html;charset=utf-8');echo "Hello 我是get请求的数据";?>
上篇只是ajax的入门,可点击这里查看
这篇讲完是不是对ajax有一个更加清晰的认识呢!
后续将继续跟进ajax知识!
阅读全文
0 0
- AJAX----核心XMLHttpRequest对象介绍
- Ajax核心对象-- XMLHttpRequest
- AJAX核心XMLHttpRequest对象
- AJAX核心对象XMLHttpRequest
- Ajax核心--XMLHttpRequest对象
- AJAX核心对象XMLHttpRequest
- AJAX核心XMLHTTPRequest对象
- AJAX核心XMLHTTPRequest对象
- Ajax核心XMLHttpRequest对象
- Ajax核心对象 XMLHTTPRequest
- AJAX的核心XMLHttpRequest对象
- Ajax的核心对象XMLHttpRequest
- AJAX的核心对象XMLHttpRequest
- AJAX(二)--核心对象XMLHttpRequest
- AJAX—核心XMLHttpRequest对象
- Ajax技术---核心XMLHttpRequest对象
- 《XMLHttpRequest对象-AJAX技术核心》
- AJAX使用 以及 AJAX核心:XMLHttpRequest对象
- Linux查看DNS
- 硬币排成线I和硬币排成线II问题
- cntk深度网络——从入门到转行一
- React native 技术中 android 和 iOS 平台差异
- linux ipc---消息队列---为什么需要键值 key_t key
- AJAX----核心XMLHttpRequest对象介绍
- display:inline、block、inline-block的区别
- 过滤器与拦截器的区别
- numpy安装
- Maven项目结构下 Resources目录下文件读取
- C++Builder 10.2编译android应用问题解决
- Anko和扩展的函数(六)
- BATMAN
- C语言数据类型