基于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 相关文章推荐
Node.js中对通用模块的封装方法
Jun 06 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
Html5的placeholder属性(IE兼容)实现代码
Aug 30 Javascript
jquery+php随机生成红包金额数量代码分享
Aug 27 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
Aug 16 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
巧妙运用v-model实现父子组件传值的方法示例
Apr 07 Javascript
javascript获取元素的计算样式
May 24 Javascript
javascript自定义右键菜单插件
Dec 16 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 图片上传实现代码 带详细注释
2010/04/29 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
vue实现计步器功能
2019/11/01 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
Python编程中装饰器的使用示例解析
2016/06/20 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python实现不规则图形填充的思路
2020/02/02 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
公司庆典邀请函范文
2014/01/13 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
导游词之襄阳古城
2019/09/27 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL