• 封装Ajax(转发)


    /**    
    * 执行基本ajax请求,返回XMLHttpRequest    
    *  Ajax.request({    
    *  url 
    *  async 是否异步 true(默认)   
    *  method 请求方式 POST or GET(默认)   
    *  data 请求参数 (键值对字符串)   
    *  success 请求成功后响应函数,参数为xhr   
    *  error 请求失败后响应函数,参数为xhr   
    *  });    
    */     
    Ajax = function() {  
        function request(opt) {  
            function fn() {  
            }  
            var url = opt.url || "";  
            var async = opt.async !== false, method = opt.method || 'GET', data = opt.data  || null, success = opt.success || fn, error = opt.failure  || fn;  
            method = method.toUpperCase();  
            if (method == 'GET' && data) {  
                var args = "";  
                if(typeof data == 'string'){  
                    //alert("string")  
                args = data;  
                }else if(typeof data == 'object'){  
                    //alert("object")  
                    var arr = new Array();  
                    for(var k in data){  
                        var v = data[k];  
                        arr.push(k + "=" + v);  
                    }  
                    args = arr.join("&");  
                }  
            url += (url.indexOf('?') == -1 ? '?' : '&') + args;  
                data = null;  
            }  
            var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');  
            xhr.onreadystatechange = function() {  
                _onStateChange(xhr, success, error);  
            };  
            xhr.open(method, url, async);  
            if (method == 'POST') {  
                xhr.setRequestHeader('Content-type',  
                        'application/x-www-form-urlencoded;');  
            }  
            xhr.send(data);  
            return xhr;  
        }  
        function _onStateChange(xhr, success, failure) {  
            if (xhr.readyState == 4) {  
                var s = xhr.status;  
                if (s >= 200 && s < 300) {  
                    success(xhr);  
                } else {  
                    failure(xhr);  
                }  
            } else {  
            }  
        }  
        return {  
            request : request  
        };  
    }();  
    
    Ajax.request({  
        url : path + "/report/topn/topn_data.jsp",  
        data : {  
            datatype : datatype  
        },  
        success : function(xhr) {  
            onData(xhr.responseText);  
        },  
        error : function(xhr) {  
              
        }  
    });  
    

      

  • 相关阅读:
    迭代器、生成器
    函数(函数基础、装饰器、递归、匿名函数)
    文件处理
    python对象、引用
    字符编码
    流程控制if、while、for
    编程与编程语言
    Java源码阅读(五)—— AbstractQueuedSynchronizer
    Java并发编程(二) —— volatile
    Java源码阅读(七)—— ReentrantReadWriteLock
  • 原文地址:https://www.cnblogs.com/invincible-hehe/p/3696785.html
Copyright © 2020-2023  润新知