博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
收藏的一个js ajax封装类
阅读量:2119 次
发布时间:2019-04-30

本文共 3195 字,大约阅读时间需要 10 分钟。

这个类摘自: ASP.NET Ajax典型应用 一书

xmlhttp.js

function $() {  var elements = new Array();  for (var i = 0; i < arguments.length; i++) {    var element = arguments[i];    if (typeof element == 'string')      element = document.getElementById(element);    if (arguments.length == 1)      return element;    elements.push(element);  }  return elements;}//------------------------------------------------------------------------------------------//封装XMLHTTP的Request类的代码var Request = new Object();//定义一个XMLHTTP的数组Request.reqList = [];//创建一个XMLHTTP对象,兼容不同的浏览器function getAjax(){    var ajax=false;    try    {     ajax = new ActiveXObject("Msxml2.XMLHTTP");    }    catch (e)     {      try      {      ajax = new ActiveXObject("Microsoft.XMLHTTP");      }     catch (E)      {      ajax = false;      }    }    if (!ajax && typeof XMLHttpRequest!='undefined')    {     ajax = new XMLHttpRequest();    }    return ajax;}//封装XMLHTTP向服务器发送请求的操作//url:向服务器请求的路径;method:请求的方法,即是GET还是POST;callback:当服务器成功返回结果时,调用的函数//data:向服务器请求时附带的数据;urlencoded:url是否编码;callback2;当服务器返回错误时调用的函数Request.send = function(url, method, callback, data, urlencoded, callback2) {    var req=getAjax();  //得到一个XMLHTTP的实例    //当XMLHTTP的请求状态发生改变时调用    req.onreadystatechange = function()    {    // 当请求已经加载    if (req.readyState == 4)    {            // 当请求返回成功            if (req.status < 400)            {            // 当定义了成功回调函数时,执行成功回调函数            if(callback)                callback(req,data);            }            // 当请求返回错误            else            {                alert("当加载数据时发生错误 :/n" + req.status+ "/" + req.statusText);                //当定义了失败回调函数时,执行失败回调函数                if (callback2)                callback2(req,data);            }            //服务器已经进行了处理,更改界面提示信息            afterLoading();            //删除XMLHTTP,释放资源            try {                delete req;                req = null;            } catch (e) {}        }    }    //如果以POST方式回发服务器    if (method=="POST")     {        req.open("POST", url, true);        //请求需要编码        if (urlencoded)            req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');               req.send(data);        Request.reqList.push(req);    }    //以GET方式请求     else    {        req.open("GET", url, true);        req.send(null);        Request.reqList.push(req);    }    //正在向服务器发送请求,页面显示正在加载的提示    loading();       return req;}//全部清除XMLHTTP数组元素,释放资源Request.clearReqList = function(){    var ln = Request.reqList.length;    for (var i=0; i
使用例子:

test.htm

    无标题页         
用户名:
密码:
Handler.ashx

<%@ WebHandler Language="C#" Class="Handler" %>using System;using System.Web;public class Handler : IHttpHandler {       public void ProcessRequest (HttpContext context) {        context.Response.ContentType = "text/plain";        string name = context.Request.Params["name"].ToString();        string pwd = context.Request.Params["pwd"].ToString();        if (name != "gdjlc" && pwd != "gdjlc")            context.Response.Write("用户名或密码错误。");        else            context.Response.Write("正确,进入系统。");    }     public bool IsReusable {        get {            return false;        }    }}

转载地址:http://ixzrf.baihongyu.com/

你可能感兴趣的文章
第一章C#简介
查看>>
NGWS runtime 技术基础
查看>>
Linux find 文件查询 用法示例
查看>>
Linux 查看文件大小
查看>>
mysql 命令
查看>>
MySQL执行外部sql脚本文件的命令
查看>>
解决MySql Error Code: 2006
查看>>
查看mysql数据库和表所占用空间
查看>>
Guava Collections使用介绍
查看>>
Ordering犀利的比较器
查看>>
spring+Mybatis+Ehcache整合
查看>>
google guava使用例子/示范(一)
查看>>
joda-time 时间API
查看>>
Joda Time API -2
查看>>
Spring使用Cache、整合Ehcache
查看>>
Chrome调试工具奇淫技
查看>>
30分钟快速掌握Bootstrap
查看>>
如何针对业务做DB优化
查看>>
程序猿都该知道的MySQL秘籍
查看>>
Eclipse全面提速小技巧
查看>>