在园子里逛了N久了,正好手上项目告一段落,将项目中用到的技术作下记录以便备忘。
我是做C#的,第一次做ipad方面的东西,由于项目比较急没有时间去学习ipad的开发技术,由于系统的数据完全来源于现有java系统,以webservice发布,并且要求直接对客户端授权,于是js+html5便是最佳选择了,项目与java的webservice部署在统一台服务器上,也就省去了跨域问题。当然jquery是少不了的了,另外还使用到了其他两个js文件json2.js(json序列化反序列化)和json2xml.js(xml序列化),下面便是jquery访问webservice的通用代码了。
// / <reference path="../jquery-1.5.js" /> var RequestHelper = { Request: function (data, sucessFn, errorFn, completeFn) { var reqData = this .getSoapData(data); $.ajax({ url: this .getServiceUrl(), type: " POST " , dataType: " text " , contentType: " application/json; charset=utf-8 " , data: reqData, success: function (json) { if (sucessFn) { sucessFn(json); };//成功返回处理 }, error: function (x, e) { if (errorFn) { errorFn(x, e); }//此处可统一处理错误 } }, complete: function (xml) { var xml2 = $(xml.responseText); var retValue = xml2.text(); if (completeFn) { completeFn(retValue); }; // 返回soap信封中的数据 } }); }, getSoapData: function (data) { var sopaData = "" ; sopaData = " <SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"> " ; sopaData += " <SOAP-ENV:Body> " ; sopaData += " <m:invoker xmlns:m=\" sopaData \"> " ;//此处命名空间已修改 += " <request> " + data + " </request> " ; sopaData += " </m:invoker> " ; sopaData += " </SOAP-ENV:Body> " ; sopaData += " </SOAP-ENV:Envelope> " ; return sopaData; }, getServiceUrl: function () { var local = window.location.href; local = local.substring( 0 ,local.indexOf( " :8080 " )); return (local + " :8080/your service method " ); }}