首页 > 其他 > 详细

ajax详解

时间:2014-07-23 12:21:06      阅读:318      评论:0      收藏:0      [点我收藏+]

Ajax的不足

1. 各个浏览器对XMLHttpRequest对象的支持度不足(兼容性问题)

2. 破坏浏览器的前进,后退功能。

3. 对搜索引擎支持不足。

4. 调试工具支持不足。

 

XMLHttpRequest对象的属性和方法

1.readyState属性

状态:0 代表未初始化。

        1 代表准备发送。

        2 已发送但还没收到响应

        3 正在接收

        4 接收完成

2.responseText属性

    包含客户端接收到的HTTP响应的文本内容。

    当readyState=4时,responseText才包含完整的响应信息。

    当readyState=3时,responseText包含未完整的响应信息。

    当readyState<3时,responseText为空字符串。

 

3.responseXML属性

    当readyState=4,并且响应头部的Content-Type的MIME类型为XML(text/xml或application/xml)时,该属性有值并且被解析成一个XML文档。

    其它情况为null,包括回传的XML文档不良或未完成响应回传。

 

4.status及statusText属性(描述http状态代码,及代码文本)

    当readyState>2,才能访问,否则出现异常。

5.onreadystatechange事件

     当readyState属性发生变化时触发此事件,用于触发回调函数。

 

6.open方法

     open(method, uri, async, username, password) 用来进行初始化工作

     返回值:得到一个包含send()方法的对象

     method:必须。用于指定HTTP方法如GET,POST,PUT....。按规定必须大写。

     uri:请求发送到服务器相应的URI.自动解析成绝对地址。

     async:请求是否异步,默认为true.

     调用open后,readystate状态为1.

 

7.send方法

     调用open 方法后,可以调用send()方法来发送请求。

     当open 中async=true时,send()方法调用后立即返回,否则会中断直到请求返回。

     send(data)

     data:可选。此处还有疑问。。

 

8.abort()方法

     该方法可以暂停一个HttpRequest请求或者HttpResponse的接收,并且将XMLHttpRequest的状态设置为初始化。

9.setRequestHeader(header,value)方法

     该方法用来设置请求的头部信息。在调用open()后调用这个方法。否则将得到一个异常。

10.getResponseHeader()方法

      当readystate>2时,该方法用来检索响应的头部信息。否则返回一个空字符串。

      getAllResponseHeaders()方法返回所有的HttpResponse头部信息。

 

 一个XMLHttpRequest例子

<script type="javascript/text">
var xmlHttp
//判断是否IE
if(window.ActiveXObject){
  try{
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e){
   xmlHttp=false;
   }
}
else{
   try{
    xmlHttp=new XMLHttpRequest();
}catch(e){
    xmlHttp=false;
}
}

if(xmlHttp.readyState==4||xmlHttp.readyState==0){
   xmlHttp.open("GET""test.php?"content="+content,true);
   //设置回调函数
   xmlHttp.onreadystatechange=recall();
   xmlHttp.send(null);
}

function recall(){
 if(xmlHttp.readyState==4){
   if(xmlHttp.status==200){
    xmlResponse = xmlHttp.responseXML;
    //xml处理
    myXml = xmlResponse.documnetElement;
    content = myXml.firstChild.data;
    //处理部分
   }
}else{
  alert(xmlHttp.statusText);
}
}

</script>

 

原文来自:http://www.cnblogs.com/talk/archive/2011/03/29/FB.html

ajax详解,布布扣,bubuko.com

ajax详解

原文:http://www.cnblogs.com/lucky-girl/p/3862288.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!