基于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 相关文章推荐
网页里控制图片大小的相关代码
Jun 25 Javascript
真正的JQuery.ajax传递中文参数的解决方法
May 28 Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
用window.onerror捕获并上报Js错误的方法
Jan 27 Javascript
js中通过getElementsByName访问name集合对象的方法
Oct 31 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
Apr 01 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
Vue开发环境跨域访问问题
Jan 22 Javascript
js判断两个数组相等的5种方法
May 06 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
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
python中xlutils库用法浅析
2020/12/29 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书