基于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调用flash的效果代码
Apr 26 Javascript
Prototype ObjectRange对象学习
Jul 19 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
jQuery阻止同类型事件小结
Apr 19 Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
node实现mock-plugin中间件的方法
Dec 25 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
Jan 14 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
javascript常用方法总结
2015/05/14 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
python设置检查点简单实现代码
2014/07/01 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
python3学生名片管理v2.0版
2018/11/29 Python
python打开windows应用程序的实例
2019/06/28 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
python中spy++的使用超详细教程
2021/01/29 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
TCP/IP模型的分界线
2012/12/01 面试题
新年寄语大全
2014/04/12 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
2015年副班长工作总结
2015/05/15 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript