基于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 相关文章推荐
jQuery 开天辟地入门篇一
Dec 09 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
Vue表单验证插件Vue Validator使用方法详解
Apr 07 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
elementUI 动态生成几行几列的方法示例
Jul 11 Javascript
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
基于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+SQLite存储方案
2010/09/04 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
浅析PHP绘图技术
2013/07/03 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
Array对象方法参考
2006/10/03 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
django序列化serializers过程解析
2019/12/14 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
英国医生在线预约:Top Doctors
2019/10/30 全球购物
给小学生的新年寄语
2014/04/04 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python