ajax续2 对ajax的get和post进行封装和实现回调

1.以下是最基本的一个js对象的封装: 

xhr.js

部分图:


//声明一个方法

function Ajax(){

    //实例化xhr对象

    var xhr =null;

    if(window.XMLHttpRequest){

        xhr=new XMLHttpRequest();

    }else{

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

    }

    //添加一个get方法,url请求地址,succ是成功以后的回调,falure是失败以后的回调

    this.get =function(url,succ,falure,xtype){

        if(!url){//如果没有URL则直接返回

            return;

        }

        xhr.open("GET", url,true);

        //设置回调

        xhr.onreadystatechange=function(){

            if(xhr.readyState==4){

                if(xhr.status==200){

                   if(succ){

                       //判断succ是否是一个函数

                       if(typeof(succ)=="function"){

                           //获取数据

                           varobj = null;

                           if(!xtype||xtype=="text"){

                               obj = xhr.responseText;

                           }elseif(xtype=="json"){

                               obj = xhr.responseText;

                               obj = eval("("+obj+")");

                           }elseif(xtype=="xml"){

                               obj= xhr.responseXML;

                           }                         

                           succ(obj);

                       }

                   }

                }else{

                   if(falure){

                       if(typeof(falure)=="function"){

                          //返回错误的状态码

                           falure(xhr.status);

                       }

                   }

                }

            }

        };

        //发送请求

        xhr.send(null);

    };

}

2.以下是调用方式:xhr1.jsp

<%@ page language="java"contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>

<html>

<head>

<scripttype="text/javascript"src="<c:urlvalue='/js/xhr.js'/>"></script>

</head>

<body>

  <buttononclick="_one();">One</button>

</body>

<scripttype="text/javascript">

  function_one(){

     //声明ajax对象

     var ajax =newAjax();

     // var url ="<c:url value='/xml/a.txt'/>";

     // var url ="<c:url value='/xml/aa.json'/>";

     var url ="<c:urlvalue='/xml/a.xml'/>";

     Ajax. get(url,function(data){

         //alert("成功了"+data);

        // alert(data.length);

         alert(data.getElementsByTagName("user").length);

    },function(status){

         alert("没有成功.."+status);

    },"xml"); 

  }

</script>

</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值