文章标题
2016-06-12 14:28
423 查看
最近使用js调用webservice,代码就不需要分析了,就是new出一个WebService,然后调用即可
function(){ var me = this, P = this.P; var cy = me.chainSelect.val(); var day=new Date().format("yyyy-MM-dd"); var headers = { "Accept": "application/json;", "Content-Type": "application/json;", }; var webService = new WebService("http://localhost://ws/AppToHmmsCompeteService?wsdl", headers); var request='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:app="AppToHmmsCompeteService">' +'<soapenv:Header/>' +'<soapenv:Body>' +'<app:searchAppCompete>' +'<arg0>'+shopid+'</arg0>' +'<arg1>'+cy+'</arg1>' +'<arg2>'+day+'</arg2>' +'</app:searchAppCompete>' +'</soapenv:Body>' +'</soapenv:Envelope>'; webService.POST(request, function(result) { var data=xmlToJson(parseXml(result)); var result=data["soap:Envelope"]["soap:Body"]["ns2:searchAppCompeteResponse"]["return"]; if($.type(result)=="undefined" || result.length==0 || result==null){ $(".portion_riportion").html(""); $(".pinpailuru").html(""); showinfoCommon("没有得到日数据", 3000); return; } if(result.length!=0){ }else{ } }, function(error) { }); }
/** * websevice */ function WebService(e, t) { this.headers = t; this.serviceUrl = e } WebService.prototype.CallService = function(e, t, n, r) { var i = new XMLHttpRequest; i.onreadystatechange = function() { switch (i.readyState) { case 0: r("request not initialized."); break; case 4: if (i.status >= 200 && i.status < 300) { n(i.responseText) } else { r("Error calling service. Status code: " + i.status) } break } }; i.open(e, this.serviceUrl, true); for (property in this.headers) { i.setRequestHeader(property, this.headers[property]) } i.send(t) }; WebService.prototype.GET = function(e, t) { this.CallService("GET", null, e, t) }; WebService.prototype.POST = function(e, t, n) { this.CallService("POST", e, t, n) } function parseXml(xml) { var dom = null; if (window.DOMParser) { try { dom = (new DOMParser()).parseFromString(xml, "text/xml"); } catch (e) { dom = null; } } else if (window.ActiveXObject) { try { dom = new ActiveXObject('Microsoft.XMLDOM'); dom.async = false; if (!dom.loadXML(xml)) // parse error .. window.alert(dom.parseError.reason + dom.parseError.srcText); } catch (e) { dom = null; } } else alert("oops"); return dom; } // Changes XML to JSON function xmlToJson(xml) { // Create the return object var obj = {}; if (xml.nodeType == 1) { // element // do attributes if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { // text obj = xml.nodeValue; } // do children if (xml.hasChildNodes()) { for(var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (typeof(obj[nodeName]) == "undefined") { obj[nodeName] = xmlToJson(item); } else { if (typeof(obj[nodeName].length) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xmlToJson(item)); } } } return obj; };
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享