Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41067
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 15:34
文章分类

全部博文(17)

文章存档

2011年(1)

2009年(15)

2008年(1)

我的朋友

分类: 系统运维

2009-05-02 11:23:16

(一)创建XMLHttpRequest
  1 Internet Explorer
   

xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0");

xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");

  2 Mozilla﹑Netscape﹑Safari

xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');

  3 多种浏览器

try{
  if( window.ActiveXObject ){
    for( var i = 5; i; i-- ){
      try{
       if( i == 2 ){
         xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );

           }
         else{
              xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
              xmlhttp_request.setRequestHeader("Content-Type","text/xml");
              xmlhttp_request.setRequestHeader("Charset","gb2312"); }
              break;

            }
    catch(e){
            xmlhttp_request = false;

     }

    }

   }
  else if( window.XMLHttpRequest )
  { xmlhttp_request = new XMLHttpRequest();
  if(xmlhttp_request.overrideMimeType){

       xmlhttp_request.overrideMimeType('text/xml');

    }

  }

}
catch(e){

xmlhttp_request = false;

}

(二)发送请求

xmlhttp_request.open('GET', URL, true);
xmlhttp_request.send(null);

(三)服务器的响应

xmlhttp_request.onreadystatechange =FunctionName;
xmlhttp_request.onreadystatechange = function(){
  ......

};

//说明:首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。
readyState的取值如下:
  0 (未初始化)
  1 (正在装载)
  2 (装载完毕)
  3 (交互中)
  4 (完成)
所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。具体代码如下:
if (http_request.readyState == 4) {

// 收到完整的服务器响应

}
else {

// 没有收到完整的服务器响应

}
当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。

(四)处理从服务器得到的数据
    有两种方式可以得到这些数据:
    (1) 以文本字符串的方式返回服务器的响应
    (2) 以XMLDocument对象方式返回响应

阅读(274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~