使用javascript调用webservice示例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用javascript调用webservice示例
再javascript中使用soap调用webservice的示例代码
代码再IE6和FF测试通过,对于c#写的webservice和java(xfire)写的,都测试过,没有问题
此代码原型来源于/的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=\"/
2001/XMLSchema-instance\" " +