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. java 排序算法分析

    一.冒泡排序(时间复杂度O(N^2)) public int[] bubbling(int[] arr){ ) return arr; ; i--){ 1 ; j < i-; j ++){ 2 ...

  2. Windows系统以及谷歌浏览器快捷键,控制台常用命令

    win10系统 快捷键 win+D 回到桌面 控制台代码(win+R打开控制台) calc 系统计算器 谷歌浏览器快捷键 ctrl+tab 切换标签页 ctrl+ 1/2...9 数字 切换到第几个标 ...

  3. MySQL5.6数据导入MySQL5.7报错:ERROR 1031 (HY000)

    一.故障现象 今天将一个在MySQL5.7上的数据导入到MySQL5.6里面去,默认存储引擎都是InnoDB,导入报错如下: [root@oratest52 data]# mysql -uroot - ...

  4. react中,路由的使用。import {BrowserRouter,Switch,Route} from "react-router-dom";

      import React from "react"; import ReactDom  from "react-dom"; import {BrowserR ...

  5. 技术派-常用的一些VS相关的宏名

    用户宏 ConfigurationName 配置名字,通常是Debug或者Release IntDir 编译器使用的中间目录,产出obj文件 OutDir 链接器使用的输出目录 ProjectDir ...

  6. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  7. golang学习笔记(一):包,变量,函数

    欢迎访问我的博客和github! go 语言学习笔记第一弹,来自 gotour ,以后要常写笔记,把自己学习笔记记录下来,就算只是笔记也要多写. 好记性不如烂笔头,也要多锻炼自己的写作能力. 说实话, ...

  8. [Python源码剖析]获取Python小整数集合范围

    #!/usr/bin/env python #-*- coding=utf-8 -*- small_ints = dict() for i in range(-10000,10000): small_ ...

  9. POJ_1221_DP

    http://poj.org/problem?id=1221 简单dp,dp[i][j]表示i被划分成首位>=j的方案数. dp[i][i]为1,i为偶数时dp[i][i/2]为2. 剩下的可以 ...

  10. 使用 TF-IDF 加权的空间向量模型实现句子相似度计算

    使用 TF-IDF 加权的空间向量模型实现句子相似度计算 字符匹配层次计算句子相似度 计算两个句子相似度的算法有很多种,但是对于从未了解过这方面算法的人来说,可能最容易想到的就是使用字符串匹配相关的算 ...