基于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 backgroundImage控制
May 19 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
arguments对象验证函数的参数是否合法
Jun 26 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
Apr 19 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
vue中keep-alive组件的入门使用教程
Jun 06 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
基于JavaScript实现贪吃蛇游戏
Mar 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
php获取文件大小的方法
2014/02/26 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
分享PHP守护进程类
2015/12/30 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
python递归函数用法详解
2020/10/26 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
党员自我批评与反省材料
2014/02/10 职场文书
财务情况说明书范文
2014/05/06 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
Springboot中如何自动转JSON输出
2022/06/16 Java/Android