zoukankan      html  css  js  c++  java
  • 重写了下Ajax请求Webservice,顺便复习一下Javascript的闭包概念

    var AjaxRequest = function(){
        //返回处理结果的回调函数
        this.agentCallBack = {};
        //javascript 调用domino代理的方法。
        this.ajaxCallAgent = function(agentParam){
            $.ajax({
            type: "POST",
            url: agentParam.url ,
            data: agentParam.jsondata,
            beforeSend: function(request) {
                 //request.setRequestHeader("User-Agent","Apache-HttpClient/4.1.1 (java 1.5)");
            },
            success: agentParam.agentCallBack,
            error: function(request, errorInfo) {
              alert("agent call failed, please contact your administrator.",errorInfo); // alert("errorInfo = "+errorInfo);
            }
          });
        };
    
        //返回处理结果的回调函数
        this.serviceCallBack = {};
        //调用javascriptWebService方法
        this.CallWebService =function (serviceParam){
            this.serviceCallBack = serviceParam.callBack;
          $.ajax({
            type: "POST",
            url: serviceParam.url ,
            data: serviceParam.soapdata,
            beforeSend: function(request) {
              request.setRequestHeader("Content-Type", "text/xml; charset=gbk"); //
              request.setRequestHeader("SOAPAction", serviceParam.soapaction);
            },
            success: this.serviceCallBack,
            error: function(request, errorInfo) {
              alert("invoke webservice failed, please contact your administrator.");
            }
          });
        }
    
        return this;
    }
    
    /*
    * 调用webservice的参数,目的是在重复调用时,一次初始化固定的数据
    * 变化的参数在调用前初始化不变的默认初始化就可以了
    */
    var serviceParam =function(){
        this.dbPath = $("[name=dbPath]").val();
        this.url = "/"+this.dbPath+ "/wsPurchaseOrder?OpenWebService";            //默认初始化参数
        this.ordernumber = $("[name=fldCgddbh]").val();
        this.soapaction = {};                                //调用前初始化, 需要new 一个参数对象
        this.callback = {};
        this.soapdata = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:DefaultNamespace">'+
                   '<soapenv:Header/><soapenv:Body><urn:orderNumber>'+this.ordernumber+'</urn:orderNumber></soapenv:Body></soapenv:Envelope>';
        return this;
    };
    
    /*
    * 调用代理参数少, 没有action
    * 传递参数
    */
    var agentParam =function(){
        this.dbPath = $("[name=dbPath]").val();
        this.url = "/"+this.dbPath+ "/agent?openagent";                            //默认初始化参数                                                
        this.callback = {};                                        //调用前初始化, 需要new 一个参数对象
        this.jsondata = {};                                        //例如:{ordernumber:ordernumber}
        return this;
    };

     可以拷贝所有代码另存为AjaxRequest.js后引入项目使用

  • 相关阅读:
    判断是否是三角形,三角形面积,三角形内外切圆半径和面积
    输入从a加到b的两个数字
    九九乘法表
    某公司销售员工的年终奖根据该员工的年销售总额s提成,年销售总额超过1万元才提成,超过部分提成比例如下:
    判断是否是闰年?
    从键盘上输入三个点的坐标值(1,1)、(2,4)、(3,2),编程求该三角形的面积。
    输入一个正方形的边长,输出正方形的外接圆和内接圆的面积。
    .输入一个4位正整数,以相反的次序输出,例如,输入1234,输出为4321。
    SecoClient在win10系统中连接失败解决方案
    PHP 关于判断输入日期是否合法
  • 原文地址:https://www.cnblogs.com/dangkei/p/11943554.html
Copyright © 2011-2022 走看看