重写了下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后引入项目使用
重写了下Ajax请求Webservice,顺便复习一下Javascript的闭包概念的更多相关文章
- SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据
SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...
- 跨域Ajax请求WebService方法
一.允许跨域Ajax请求,更改如下配置: 在要调用的WebService上面添加特性标签: 二.以如下返回用户信息的WebService方法为例 三.在另一个网站上通过Ajax访问webService ...
- springmvc框架下ajax请求传参数中文乱码解决
springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...
- Tomcat下ajax请求路径总结
ajax的url有两种,一种是绝对路径,另一种是相对路径. 一.绝对路径:包括协议名称.主机地址.端口.web项目名称等的完整请求路径. 例如: $.ajax({ url:"ht ...
- IE8下ajax请求失败的解决方案
今天发现IE9以下的浏览器,ajax请求返回数据异常研究半天发现是type参数未设置,由于默认方式是Get,添加上type:“post”就恢复正常了
- ajax请求webservice时抛出终止线程的异常
请求webservice中以下接口,会抛出异常 {"Message":"正在中止线程.","StackTrace":" 在 Sys ...
- [JS] IE下ajax请求不生效或者请求结果不更新
问题描述: IE8及以下版本里用jQuery发简单的GET时,第一次或者新开窗口后的请求没问题,可以正确返回结果.但是之后刷新页面或者触发某些操作得到的ajax请求结果永远和第一次一样. 问题分析: ...
- ajax请求webservice的过程中遇到的问题总结
前台用ajax的post方法,无法请求到webservice中的方法的时候,需要在配置文件中添加 web.config文件中的 <system.web> 节点下加入:<webServ ...
- AJAX请求WebService
1.WebService代码 [WebMethod] [ScriptMethod(UseHttpGet = false)] public string GetObject() { User user ...
随机推荐
- C# list中ConvertAll的使用
static double TakeSquareRoot(int x) { //return Math.Sqrt(x); ; } static void Main(string[] args) { L ...
- 六、Django学习之基于下划线的跨表查询
六.Django学习之基于下划线的跨表查询 一对一 正向查询的例子为 已知用户名,查询用户的电话号码.反向查询例子反之. 正向查询 其中下划线前的表示表名,无下划线的表示的是Author表 resul ...
- 实验10: RIP
实验7-1 : RIPV1 实验目的通过本实验可以掌握:1. 在路由器上启动RIPv1 路由进程2. 启用参与路由协议的接口,并且通告网络3. 理解路由表的含义4. 查看和调试RIPv1 路由协议相 ...
- 关于puremvc的几点思考
软件框架 框架要解决的问题是什么?这个问题感觉不能一概而论,就目前我遇到的项目实际来说主要是要解决以下几个问题 复用 并行开发 跨平台 项目背景:视频监控领域下,C/S & B/S模式的PC客 ...
- POJ_1182_并查集
http://poj.org/problem?id=1182 pre构建有关系的号码的树,rel保存当前号码与根的关系,0表示相同,1表示根吃当前,2表示当前吃根. 代码中的更新公式可以先把各种情况枚 ...
- 《N诺机试指南》(二)C++自带实用函数
1.排序sort函数: 2.查找: 实例: 3. 队列:
- bootstrap 按钮组件
按钮组件主要的类名: .btn-toolbar 把几个 .btn-group 组合在一起,更复杂的组件 .btn-group .btn-group-vertical 垂直堆叠显示 ...
- AD域SSP安全防护
一.简介 SSP(Security Support Provider)是windows操作系统安全机制的提供者.简单的说,SSP就是DLL文件,主要用于windows操作系统的身份认证功能,例如NTL ...
- vue-cli 脚手架
vue脚手架 vue-cli 基于webpack.帮助我们完成了对项目的基本架构,冗余代码比较多 ,资源的浪费 1.全局安装vue的脚手架 cnpm install @vue/cli -g 2.查看版 ...
- Keepalived 配置文件
keepalived的配置文件: keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs. 全局定义及 ...