没有合适的资源?快使用搜索试试~ 我知道了~
使用javascript调用webservice示例归类.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 35 浏览量
2021-11-10
13:09:15
上传
评论
收藏 44KB PDF 举报
温馨提示
试读
16页
使用javascript调用webservice示例归类.pdf
资源推荐
资源详情
资源评论
使用 javascript调用 webservice示例
再 javascript 中使用 soap 调用 webservice 的示例代码
代码再 IE6 和 FF测试通过 , 对于 c#写的 webservice 和 java(xfire) 写的 , 都测试
过, 没有问题
此代码原型来源于 http://www.guru4.net/ 的 javascript soapclient
发现这个下载的 js 只能用于调用 c#的 webservice, 所以利用 mootools, 重新封
装, 达到 IE 和火狐的兼容的同时 , 兼容 java 和 c#
( 再例子中使用的 mootools.v1.11.js 文件,做过修改 )
客户端 js 调用代码如下
js 代码
1. function ajaxRequest()
2. {
3. var url = "http://localhost:88/webservicedemo.asmx" ;
4.
5. // 设置 webService 传入参数
6. //
7. // 注意:
8. //
9. // 调用 .Net 写的 webservice( 如例子中的
webservicedemo.asmx)
10. // HelloTo(String name) 针对 name参数必须
写成 wqj, 还有更多参数一样写 , 使用名称匹配
11. // 传入的参数数量可以不等于 ( 多于或少于 ) 方法
要求的参数
12. //
13. // 调用 java(xfire) 发布的 webService
14. // 传入的参数必须与调用方法的参数数量相等 , 且
按传入值的顺序进行匹配
15. //
16.
17. var para = "wqj" ; 这里应该是一个标准的 xml 形式 , 源码贴出
来时被虑掉了 , 请参看附件源码
18.
19. var op = {
20. data:para,
21. onComplete: showResponse,
22. onFailure:showError,
23. update:'ajaxBack'
24. };
25.
26. var service = new WebService(url, "HelloTo" ,op);
27. service.request();
28. return false ;
29. }
30. function showError(obj)
31. {
32. //obj 是一个 xmlHttpRequest 对象
33. alert( "error" );
34. }
35. function showResponse(requestText,requestXML)
36. {
37. //requestText 返回的文本
38. //requestXML 返回的 XML
39. alert( "ok" );
40. }
WebService 类的代码如下 (webservice.js)
js 代码
1. var WSDLS = {};
2.
3. var WebService = new Class({
4.
5. url : '' ,
6. method : '' ,
7. options:
8. {
9. method:'GET',
10. data: null ,
11. update: null ,
12. onComplete: Class.empty,
13. onError:Class.empty,
14. evalScripts: false ,
15. evalResponse: false
16. },
17.
18. initialize: function (url,method,options)
19. {
20. this .url = url;
21. this .method = method;
22. this .options = options;
23.
24. },
25.
26. request : function ()
27. {
28. var wsdl = WSDLS[ this .url];
29. if (!wsdl)
30. {
31. var op = {method:'GET',async: false };
32. var wsdlAjax = new XHR(op).send( this .url + "?wsdl" ,
null );
33. wsdl = wsdlAjax.transport.responseXML;
34. WSDLS[ this .url] = wsdl;
35. }
36. this .setSoap(wsdl);
37. },
38.
39. setSoap : function (wsdl)
40. {
41.
42. var ns =
(wsdl.documentElement.attributes[ "targetNamespace" ] + "" ==
"undefined" ) ?
wsdl.documentElement.attributes.getNamedItem( "targetNamespace" )
.nodeValue :
wsdl.documentElement.attributes[ "targetNamespace" ].value;
43. var sr =
44. "" +
45. ""
46. "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-i
nstance\" " +
47. "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
" +
48. "xmlns:soap=\"http://schemas.xmlsoap.org/soap/e
nvelope/\">" +
49. "" +
50. "<" + this .method + " xmlns=\"" + ns + "\">" +
51. ( this .options.data ===
null ? "" : this .options.data) +
52. " + this .method + ">;
53.
54. this .options.method = 'post';
55. this .options.data = null ;
56.
57. var soapaction = ((ns.lastIndexOf( "/" ) != ns.length - 1) ?
ns + "/" : ns) + this .method;
58.
59. var soapAjax = new Ajax( this .url, this .options);
60. soapAjax.setHeader( "SOAPAction", soapaction);
61. soapAjax.setHeader( "Content-type" , "text/xml;
charset=utf-8" );
62. soapAjax.request(sr);
63. }
64.
65.});
在第一个版本中存在以下问题
1. 不能根据 webservice 的要求输入参数自动组织参数
2. 没有处理返回值
3. 一旦 webservice 调用过程出错 , 会形成一个死循环 ( 一直弹出 error)
V2 说明
1. 解决第一版中死循环的问题
2. 统一输入参数的传入形式 ( 与 mootools 的 ajax 使用方式完全一致 ), 形式如
name=wqj&age=20&........
3. 自动根据参数名对应的值 , 组织 webservice 的传入参数 , 只根据 webservice
要求的参数名查找对应的值
与顺序不再有关系 .( 对于 xfire 中的输入参数使用名称 in0,in1........)
传入的参数数量也不再要求一致 , 多的自动丢弃 , 少的自动传空
4. 对于返回的 XML,增加提取方法 , 返回需要的关键返回值 ( 去掉 XML的框框 )
详细参照附件源码 , 下面是部分关键代码
JavaScriptSOAP.rar (47.1 KB)
描述 : js 调用 webservice 示例
下载次数 : 443
剩余15页未读,继续阅读
资源评论
cyh76339129
- 粉丝: 1
- 资源: 14万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功