zoukankan      html  css  js  c++  java
  • Javascript 封装的ajax方法

    //ajax的封装
    var Ajax = {
        method: 'post',
        asynchronous: true,
        proxy: null,
        contentType: "application/x-www-form-urlencoded",
    
        create: function () {
            var me = this, proxy;
            var xmlhttpObj = ['MSXML2.XMLHTTP.3.0',
                           'MSXML2.XMLHTTP',
                           'Microsoft.XMLHTTP'];
            if (window.XMLHttpRequest)// firefox 
            {
                proxy = new XMLHttpRequest();
            }
            else if (typeof ActiveXObject != "undefined")// IE 
            {
                for (var i = 0, len = xmlhttpObj.length; i < len; i++) {
                    if (!proxy)
                        proxy = new ActiveXObject(xmlhttpObj[i]);
                    else
                        break;
                }
            }
            return proxy;
        },
        stateChange: function (proxy, callback) {
            var me = this;
            var readyState = proxy.readyState;
            if (readyState == 4 && proxy.status == 200)
                (callback || function () { }).call(me, proxy.responseText, proxy);
        },
        analyzeParam: function (params) {
            var arrp = [];
            for (var p in (params || {})) {
                arrp.push("&" + p + "=" + params[p]);
            }
            return arrp.join().replace(/\,/g, "");
        },
        request: function (cfg) {
            var me = this;
            var proxy = me.create();
            if (proxy) {
                proxy.onreadystatechange = function () {
                    me.stateChange.call(me, proxy, cfg.callback);
                };
            }
            var param = me.analyzeParam(cfg.params);
            try {
                proxy.open(me.method, cfg.url, me.asynchronous);
                proxy.setRequestHeader("Content-type", me.contentType);
                proxy.send(me.analyzeParam.call(me, cfg.params));
            }
            catch (ex) {
                alert(ex.message)
            }
        }
    };
    
    
    //调用方法
    Ajax.request({
          url:"text.aspx",
          params:{name:'aa',age:20},
          callback:function(response){alert(response)}
    });
    
  • 相关阅读:
    蓝桥杯基础练习 杨辉三角形
    蓝桥杯基础练习 回文数 特殊的数字
    普及图论三题 P1807 P1113 P 4017
    P3916 图的遍历
    [转载][总结]图论入门:建图,DFS,BFS,拓扑排序
    如何转载博客园的文章
    P1892 [BOI2003]团伙
    P1621 集合
    [模板]线性筛素数(欧拉筛)
    P5076 普通二叉树(简化版)
  • 原文地址:https://www.cnblogs.com/SunsetAndTea/p/1989966.html
Copyright © 2011-2022 走看看