88284453 2013-10-18
最近一段时间下笔了3次,后来都没有进行下去。今天上班来的早了一些,把前一段时间写的js调用webservice的经验与大家分享一下!!!
背景:由于公司最近在搞移动端的功能,需要做报表分析和部分列表展现,需要调用第三方的webservice获取数据,然后通过html5的jquerymobile+jquerychart的技术,都是前端技术所以顾名思义,就需要js实时调用webservice来获取数据,在此,进行研究了一下js实时调用webservice的技术,首先,在网上搜索了很多关于js调用webservice的技术,但是都是js调用.net的webservice,对应.net技术我不是太了解,大家都说.net写的webservice可以直接返回webservice返回的结果,并且可以通过jsonp返回数据也不会有问题,因为我需要调用java的webservice,开始也是用的js调用.net的方式进行调用但是每次调用都会报错。后来在网上搜索了老半天才解决了这个问题,与大家分享。
1.引入jquery.js
2.写一个webservice需要调用的接口xml参数函数,需要给webservice调用服务器进行
3.通过jquery被ajax异步调用这个webservice
4.由于在平板上不存在跨域问题,所以不用考虑跨域,但是在ie浏览器上回存在跨域问题,解决的方法
解决浏览器跨域问题:
$.support.cors = true;
5.关于返回结果的解析问题
不管是你在webservice中返回的是什么值,webservice都会以xml的形式返回,所有,我们在返回的结果中要需要做进一步的处理。
因为不同的浏览器解析的结果不同,所有的调的结果页是不尽相同的
//对结果做XML解析。
//浏览器判断 (IE和非IE完全不同)
if($.browser.msie){
//$("#result").append(xml.getElementsByTagName("ns1:out")[0].childNodes[0].nodeValue);
alert('wwwww');
}
else{
alert('wwwww');
$(xml).find("out").each(function(){
$("#result").append($(this).text());
})
}
基本上 如果操作没有失误的话应该是没有问题的。