使用XMLHttpRequest 对象
来源:互联网 发布:中国站长之家软件中心 编辑:程序博客网 时间:2024/05/20 16:32
创建XMLHttpRequest对象的一个实例
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
方法和属性
void open(string method,string url,boolean asynch,string username,string password)
建立对服务器的调用,初始化一个请求的纯脚本方法。2个必要参数,3个可选参数
1:要提供调用的特定方法(GET,POST,PUT)
2: 提供所调用资源的URL。
3:调用异步还是同步,默认true,异步。
4:制定特定的用户名和密码。
void send(content):具体向服务器发出请求。如声明为异步,方法立即返回,否则等待直到接收到响应为止。
void setRequestHeader(string header,string value):这个方法为HTTP请求中一个给定的首部设置值。它有两个参数,第一个串表示要设置的首部,第二个串表示要在首部中放置的值。需要说明,这个方法必须在调用open()之后才能调用。
在所有这些方法中,最有可能用到的就是open()和send()。XMLHttpRequest对象还有许多属性,在设计Ajax交互时这些属性非常有用。
void abort():停止请求。
string getAllResponseHeader():这个方法的核心功能对Web应用开发人员应该很熟悉了,它返回一个串,其中包含HTTP请求的所有响应首部,首部包括ContentLength、Date和URL。
string getResponseHeader(string header):这个方法与getAllResponseHeaders()是对应的,不过它有一个参数表示你希望得到的指定首部值,并且把这个值作为串返回。
除了以上这些标准方法,XMLHttpRequest对象还提供了许多属性,如下表所示,处理XMLHttpRequest时可以大量使用这些属性。
--------------------------------------------------
onreadystatechange 每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
readyState 请求的状态。有5个可取值:0=示初始化,1=正在加载,2=已加载,3=交互中,4=完成
responseText 服务器的响应,表示为一个串
responseXML 服务器的响应,表示为XML,这个对象可能解析为一个DOM对象
status 服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等
statusText HTTP状态码的相应文本(OK或Not Found(未找到)等等)
----------------------------------------------------
交互示例
1.一个客户端事件触发一个Ajax事件。从简单的onchange事件到某个特定的用户动作,很多这样的事件都可以触发Ajax事件。可以有如下的代码:
<input type="text" id="email" name="email" onblur="validateEmail()";>
2.创建XMLHttpRequest对象的一个实例。使用open()方法建立调用,并设置URL以及所希望的HTTP方法(通常是GET或POST)。请求实际上通过一个send()方法调用触发。可能的代码如下所示:
var xmlHttp;
function validateEmail() {
var email=document.getElementById("email");
var url="validate.asp?email="+escape(email.value);
if (window.ActiveXObject) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp=new XMLHttpRequest();
}
xmlHttp.open("GET","url");
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
xmlHttp.open("GET", url);
=================
这里面的URL是只要响应请求的页面。例如PHP等。
URL这个地址可以传递参数,比如你要查询数据中ID=2的所有信息。
page = 2;
URL=“selectDB.php?page=" + escape(page);
这样你从数据查询时。通过get方法获取这个"page“,查询数据库中返回的结果放在XML对象里面。
然后通过 callback()回调方法来处理从数据库中返回的信息。就会用到split 等函数。
==================
xmlHttp.open("GET", url);
就是请求url指定文件,该文件可以是xml,也可以是html后者其它
url可以带参数
这个参数可以用于服务器处理数据用
url也可以是xml文件
服务器会将xml文件内容返回给客户端
客户端可以用dom对返回的xml对象进行操作
ajax就是用xmlhttpresponse对象异步向服务器提交相应而已
=====================================
3.向服务器做出请求。可能调用servlet、CGI脚本,或者任何服务器端技术。
4.服务器可以做你想做的事情,包括访问数据库,甚至访问另一个系统。
5.请求返回到浏览器。Content-Type设置为text/xml——XMLHttpRequest对象只能处理text/html类型的结果。在另外一些更复杂的示例中,响应可能涉及更广,还包括JavaScript、DOM管理以及其他相关的技术。需要说明,你还需要设置另外一些首部,使浏览器不会在本地缓存结果。
为此可以使用如下的代码:
response.setHeader("Cache-Control","no-cache");
response.setHeader("pragma","no-cache");
6.在这个示例中,XMLHttpRequest对象配置为处理返回时要调用callback()函数。这个函数会检查XMLHttpRequest对象的readyState属性,然后查看服务器返回的状态码。如果一切正常,callback()函数就会在客户端上做些有意思的工作。以下就是一个典型的回调方法:
function callback() {
if(xmlHttp.readyState==4) {
if (xmlHttp.status==200) {
//do something insteresting here
}
}
}
可以看到,这与正常的请求/响应模式有所不同,但对WEB开发人员来说,并不是完全陌生的。显然,在创建和建立XMLHttpRequest对象时还可以做些事情,另外当“回调”函数完成了状态检查之后也可以有所作为。一般地,你会把这些标准调用包装在一个库中,以便在整个应用中使用,或者可以使用WEB上提供的库。
GET与POST的区别:
从理论上讲,如果请求是幂等的就可以使用GET,所谓幂等是指多个请求返回相同的结果。实际上,相应的服务器方法可能会以某种方式修改状态,所以一般情况下这是不成立的。这只是一种标准。更实际的区别在于净荷的大小,在许多情况下,浏览器和服务器会限制URL的长度,URL用于向服务器发送数据。一般来讲,可以使用GET从服务器获取数据;换句话说,要避免使用GET调用改变服务器上的状态。
一般地,当改变服务器上的状态时应当使用POST方法。不同于GET,需要设置XMLHttpRequest对象的Content-Type首部,如下所示:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
与GET不同,POST不会限制发送给服务器的净荷的大小,而且POST请求不能保证是幂等的。
你做的大多数请求都是GET请求,不过,如果需要,也完全可以使用POST。
- XMLHttpRequest 对象的使用
- 使用XMLHttpRequest 对象
- XmlHttpRequest对象使用实例
- XMLHttpRequest对象的使用
- ajax使用xmlHttpRequest对象
- xmlHttpRequest对象的使用
- 第一章:使用XMLHttpRequest对象
- 2使用XMLHttpRequest对象
- XMLHttpRequest对象及其使用
- XMLHttpRequest 对象使用案例
- 使用XMLHttpRequest与DOM对象
- 使用XMLHttpRequest与DOM对象
- 使用XMLHttpRequest和DOM对象
- 【AJAX】XMLHttpRequest对象的使用
- XMLHttpRequest对象创建和使用
- XMLHttpRequest对象的基本使用
- Ajax-核心对象--XMLHttpRequest 对象使用详解
- AJAX核心对象-- XMLHttpRequest 对象使用详解
- velocity中文手册
- 如何少走弯路?
- 恢复 SQL 被注入后的数据代码
- 一段將數據集中的數據通過OLE存到EXCEL的方法
- 在启动项上添加项目的方法
- 使用XMLHttpRequest 对象
- 线程的sleep方法
- 型男训练,回家下载
- SQL注入不完全思路与防注入程序
- 08年度的佳作——《真・恋姫†無双》玩后感(蜀国篇)+AGTH真正提取大法
- 线程的join方法
- 实现两个DataTable的联合查询
- tiny_mce的使用,如何修改默认字体
- C# Enumeration 使用