zoukankan      html  css  js  c++  java
  • 封装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) {  
              
        }  
    });  
    

      

  • 相关阅读:
    (转)Linux 信号说明列表
    linux下socket函数之listen的参数backlog
    (转)auto_ptr与shared_ptr
    (转)关于两次fork
    收集外链
    (转+整理)Linux下Makefile的automake生成全攻略
    LINUX socket编程(转载)errno.h
    (转) socket编程——sockaddr_in结构体操作
    k Nearest Neighbor Search by CUDA
    CUDA Anisotropic Diffusion on a 2D Image
  • 原文地址:https://www.cnblogs.com/invincible-hehe/p/3696785.html
Copyright © 2011-2022 走看看