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后引入项目使用

重写了下Ajax请求Webservice,顺便复习一下Javascript的闭包概念的更多相关文章

  1. SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

    SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...

  2. 跨域Ajax请求WebService方法

    一.允许跨域Ajax请求,更改如下配置: 在要调用的WebService上面添加特性标签: 二.以如下返回用户信息的WebService方法为例 三.在另一个网站上通过Ajax访问webService ...

  3. springmvc框架下ajax请求传参数中文乱码解决

    springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...

  4. Tomcat下ajax请求路径总结

    ajax的url有两种,一种是绝对路径,另一种是相对路径.   一.绝对路径:包括协议名称.主机地址.端口.web项目名称等的完整请求路径. 例如: $.ajax({     url:"ht ...

  5. IE8下ajax请求失败的解决方案

    今天发现IE9以下的浏览器,ajax请求返回数据异常研究半天发现是type参数未设置,由于默认方式是Get,添加上type:“post”就恢复正常了

  6. ajax请求webservice时抛出终止线程的异常

    请求webservice中以下接口,会抛出异常 {"Message":"正在中止线程.","StackTrace":" 在 Sys ...

  7. [JS] IE下ajax请求不生效或者请求结果不更新

    问题描述: IE8及以下版本里用jQuery发简单的GET时,第一次或者新开窗口后的请求没问题,可以正确返回结果.但是之后刷新页面或者触发某些操作得到的ajax请求结果永远和第一次一样. 问题分析: ...

  8. ajax请求webservice的过程中遇到的问题总结

    前台用ajax的post方法,无法请求到webservice中的方法的时候,需要在配置文件中添加 web.config文件中的 <system.web> 节点下加入:<webServ ...

  9. AJAX请求WebService

    1.WebService代码 [WebMethod] [ScriptMethod(UseHttpGet = false)] public string GetObject() { User user ...

随机推荐

  1. ros中launch启动文件的使用方法

    launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROS Master) launch文件中包含很多标签和属性 *launch文件语法 <launch> <node ...

  2. ROS机器人之动作(一)

    前面我们探讨了ros的两种通信方式,话题和服务,服务机制常用于同步的请求/响应交互方式. 话题则是单工通信,尤其是接收方有多时(比如传感器数据流),然而,当需要完成的任务比较复杂时, 服务和话题都不是 ...

  3. mysql常用语句及实题训练

    基本语句操作 创建数据库: create database database-name 1 删除数据库: drop database database-name 1 修改数据名: RENAME DAT ...

  4. SSH: ssh隧道

    简介 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境.SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接. ...

  5. Mysql 5.7.18:主从复制,io优化

    #目录 #挂盘#时间同步#master节点,进行如下操作: #下载安装 #初始化 #配置文件 #开机启动 #服务启动 #初始数据库#slave节点,进行如下操作: #下载安装 #初始化 #配置文件 # ...

  6. 微信小程序开发技巧总结 (一)-- 数据传递和存储

    结合自己在平时的开发中遇到的各种问题,和浏览各种问题的解决方案总结出一些自己在日常开发中常用的技巧和知点,希望各位不吝斧正. 1.短生命周期数据存储 以小程序启动到彻底关闭为周期的的数据建议存储在ap ...

  7. gulp 压缩文件2 摘

    一下代码用来简单的压缩 .js  和 .css   ;  在cmd里执行 gulp minifycss    minifyjs,各task执行是正常的. 注意,先安装后相应的模块,建议安装到本地. 说 ...

  8. Tensorflow和pytorch安装(windows安装)

    一. Tensorflow安装 1. Tensorflow介绍 Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一.Tensorflow由Google开发,是GitHub ...

  9. [转]adbkey与adbkey.pub

    转载至:https://blog.csdn.net/caibaihui/article/details/46862591 error: device unauthorized. Please chec ...

  10. flyway使用简介

    官网 https://flywaydb.org/ 背景 Flyway是独立于数据库的应用.管理并跟踪数据库变更的数据库版本管理工具.用通俗的话讲,Flyway可以像Git管理不同人的代码那样,管理不同 ...