基于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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
JavaScript中实现Map的示例代码
Sep 09 Javascript
JavaScript基本的输出和嵌入式写法教程
Oct 20 Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 Javascript
js实现适合新闻类图片的轮播效果
Feb 05 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
layui2.0使用table+laypage实现真分页
Jul 27 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 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
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP会话控制实例分析
2016/12/24 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
python比较2个xml内容的方法
2015/05/11 Python
python查看微信好友是否删除自己
2016/12/19 Python
详解django中自定义标签和过滤器
2017/07/03 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python中字符串与编码示例代码
2019/05/20 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
如何写自我鉴定
2014/03/19 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers