基于JQuery的访问WebService的代码(可访问Java[Xfire])


Posted in Javascript onNovember 19, 2010

我仔细看看了看看几个人的例子,发现了问题。众所周知WebService是遵守SOAP协议的,为什么例子都是JSON格式的参数传递?net WebService兼容JSON格式,而Java的是标准WebService,不兼容JSON。看来net害了大家啊。于是我仔细了解了WSDL文件,做了个例子。下面只放关键代码。

$(function () { 
$("#btnWs").click(btnAjaxPost); 
}); function btnAjaxPost(event) { 
$.ajax({ 
type: "POST", 
contentType:"text/xml", 
url:"http://*****/WebServiceTest/services/HelloWorldService", 
data:getPostData(),//这里不该用JSON格式 
dataType:'xml',//这里设成XML或者不设。设成JSON格式会让返回值变成NULL 
success: function(xml) { 
//对结果做XML解析。 
//浏览器判断 (IE和非IE完全不同) 
if($.browser.msie){ 
$("#result").append(xml.getElementsByTagName("ns1:out")[0].childNodes[0].nodeValue+"<br/>"); 
} 
else{ 
$(xml).find("out").each(function(){ 
$("#result").append($(this).text()+"<br/>"); 
}) 
} 
}, 
error: function(x, e) { 
alert('error:'+x.responseText); 
}, 
complete: function(x) { 
//alert('complete:'+x.responseText); 
} 
}); 
} 
//定义满足SOAP协议的参数。 
function getPostData() 
{ 
//根据WSDL分析sayHelloWorld是方法名,parameters是传入参数名 
var postdata="<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 
postdata+="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"; 
postdata+="<soap:Body><sayHelloWorld xmlns=\"http://tempuri.org/\">"; 
postdata+="<parameters>"+$("#txtName").val()+"</parameters>"; 
postdata+="</sayHelloWorld></soap:Body>"; 
postdata+="</soap:Envelope>"; 
return postdata; 
}

完整例子SVN地址:http://theyounglearningmaterials.googlecode.com/svn/trunk/JavaWebServices/WebServiceTest/
我以后所有学习的例子都会放在 http://theyounglearningmaterials.googlecode.com/svn/trunk/里面,方便管理防止丢失。
Javascript 相关文章推荐
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
js实现移动端编辑添加地址【模仿京东】
Apr 28 Javascript
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
react中Suspense的使用详解
Sep 01 Javascript
layui实现tab的添加拒绝重复的方法
Sep 04 Javascript
基于jQuery的获得各种控件Value的方法
Nov 19 #Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 #Javascript
使用jQuery的将桌面应用程序引入浏览器
Nov 19 #Javascript
DIV菜单层实现代码
Nov 19 #Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 #Javascript
基于jquery的跨域调用文件
Nov 19 #Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 #Javascript
You might like
浅析PHP中Collection 类的设计
2013/06/21 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
会计电算化个人自我评价
2013/11/17 职场文书
企业申诉管理制度
2014/01/30 职场文书
如何写好建议书
2014/03/13 职场文书
教师党员承诺书
2014/03/25 职场文书
文明工地标语
2014/06/16 职场文书
导航工程专业自荐信
2014/09/02 职场文书
介绍长城的导游词
2015/01/30 职场文书
Go语言 详解net的tcp服务
2022/04/14 Golang