zoukankan      html  css  js  c++  java
  • ajax请求工具类

    ajax的get和post请求工具类:

    /**
     * 公共方法类
     *
     * 使用  变量名=function()定义函数时,如果在变量名前加var,则这个变量变成局部变量
     */
    var Common = function() {
        
        /*
         * 获取url参数
         */
        var getQueryStr = function(sUrlParam, sArgName) {
            var retval = "";
            if (sUrlParam == null || sUrlParam.length == 0) {
                return retval;
            }
            var args = sUrlParam.split("&");
            for (var i = 0; i < args.length; i++) {
                sUrlParam = args[i];
                var arg = sUrlParam.split("=");
                if (arg.length <= 1)
                    continue;
                if (arg[0] == sArgName)
                    retval = arg[1];
            }
            return retval;
        }
        
        /*
         * ajax发送post请求
         */
        var postReq = function(url, param, fnCallback, isIndex) {
            var target, options = {
                title : "异常信息",
                content : "",
                bodyType : "errorMessage"
            };
            
            if (isIndex) {
                target = window;
            }
            else {
                target = window.parent;
            }
            
           $.ajax({
                    url : url,
                    type : "POST",
                    timeout : 300000,
                    headers:"Access-Control-Allow-Origin:*",
                    contentType : "application/x-www-form-urlencoded;charset=UTF-8",
                    dataType : "json",
                    data : param
                }).done(function(data, textStatus, jqXHR) {
                    if (jqXHR.getResponseHeader('sessionStatus') == 'timeout') {
                        options.content = '会话已经超时.';
                        target.showModal(options, function() {
                                target.location.href = 'login.html';
                            });
                    }
                    else if (!data) {
                        options.content = '无返回信息.';
                        target.showModal(options, function() {
                                // donothing
                            });
                    }
                    else {
                        fnCallback(data);
                    }
                }).fail(function(jqXHR, textStatus, errorThrown) {
                    if (jqXHR.status == 0) {
                        options.content = '请求异常,网络连接失败!';
                    }
                    else if (jqXHR.status == 403) {
                        options.content = jqXHR.responseJSON.message;
                    }
                    else {
                        options.content = "请求异常,状态码:" + jqXHR.status;
                    }
                    
                    target.showModal(options, function() {
                            // donothing
                        });
                });
        };
        
        var postReq = function(url, param, fnCallback, isIndex) {
            var target, options = {
                title : "异常信息",
                content : "",
                bodyType : "errorMessage"
            };
            
            if (isIndex) {
                target = window;
            }
            else {
                target = window.parent;
            }
            
           $.ajax({
                    url : url,
                    type : "POST",
                    timeout : 300000,
                    contentType : "application/x-www-form-urlencoded;charset=UTF-8",
                    dataType : "json",
                    data : param
                }).done(function(data, textStatus, jqXHR) {
                    if (jqXHR.getResponseHeader('sessionStatus') == 'timeout') {
                        options.content = '会话已经超时.';
                        target.showModal(options, function() {
                                target.location.href = 'login.html';
                            });
                    }
                    else if (!data) {
                        options.content = '无返回信息.';
                        target.showModal(options, function() {
                                // donothing
                            });
                    }
                    else {
                        fnCallback(data);
                    }
                }).fail(function(jqXHR, textStatus, errorThrown) {
                    if (jqXHR.status == 0) {
                        options.content = '请求异常,网络连接失败!';
                    }
                    else if (jqXHR.status == 403) {
                        options.content = jqXHR.responseJSON.message;
                    }
                    else {
                        options.content = "请求异常,状态码:" + jqXHR.status;
                    }
                    
                    target.showModal(options, function() {
                            // donothing
                        });
                });
        };
        
        return {
            getQueryStr : getQueryStr,
            postReq : postReq
        }
    }();

    调用方法:

                        Common.postReq('svcinfo/findForSelect.do', {
                                svcAlias : key
                            }, function(json) {
                                if ($.trim(key) == '') {
                                    // splice(a1,a2,a3...)从a1位置开始替换a2个元素为a3...
                                    json.data.splice(0, 0, {
                                            svnName : 'all',
                                            svcAlias : '所有服务'
                                        });
                                }
                                me.cacheDataSource = [];//清空原数组,避免内存泄露
                                me.cacheDataSource[key] = json.data;
                                query.callback({
                                        results : json.data
                                    });
                            });

  • 相关阅读:
    使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
    Android学习-应用程序管理
    用户过2亿获取每个用户不到6分钱,闪传是怎么做到?(最大的成本是决策成本,否则全是无用功)
    Delphi应用程序的调试(十)调试器选项(在IDE中不要使用异常)
    无标题窗体拖动(三种方法)
    关于Qt在子线程中使用QMessageBox的折衷方法
    Qt自定义事件的实现(军队真正干活,但要增加监军,大平台通知事件,事件内容自定义)
    java对数据库的操作
    ddd
    伟大是熬出来的
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/6594627.html
Copyright © 2011-2022 走看看