基于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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
为超链接加上disabled后的故事
Dec 10 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 Javascript
jsp+javascript打造级连菜单的实例代码
Jun 14 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
浅谈JavaScript数据类型及转换
Feb 28 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 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实现定时任务的五种方法
2016/07/25 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
python函数装饰器用法实例详解
2015/06/04 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Django中url的反向查询的方法
2018/03/14 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
大学生求职信范文应怎么写
2014/01/01 职场文书
青年文明号事迹材料
2014/01/18 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
大学班级学风建设方案
2014/05/01 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
python 中的@运算符使用
2021/05/26 Python
tomcat下部署jenkins的方法
2022/05/06 Servers