基于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 相关文章推荐
单独使用CKFinder选择图片的方法
Aug 21 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
ExtJS判断IE浏览器类型的方法
Feb 10 Javascript
Web Uploader文件上传插件使用详解
May 10 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
Vue中使用vux配置代码详解
Sep 16 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
layer父页获取弹出层输入框里面的值方法
Sep 02 Javascript
jQuery实现轮播图效果
Nov 26 jQuery
基于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数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
JS类的封装及实现代码
2009/12/02 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python使用百度翻译进行中翻英示例
2014/04/14 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python插入排序算法实例分析
2015/07/03 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Python paramiko模块的使用示例
2018/04/11 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
.NET初级开发工程师面试题
2014/04/18 面试题
2015年感恩节活动总结
2015/03/24 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
微信小程序实现聊天室功能
2021/06/14 Javascript
python自动计算图像数据集的RGB均值
2021/06/18 Python
Python实现学生管理系统(面向对象版)
2021/06/24 Python
HTML基础详解(上)
2021/10/16 HTML / CSS