`
飞天小女警
  • 浏览: 107166 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

JavaScript调用webService

阅读更多

   Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。

   WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。

 

<script type="text/javascript">
		function createXMLHttpRequest() {
			var xmlHttp;
			if (window.ActiveXObject) {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			else if (window.XMLHttpRequest) {
				xmlHttp = new XMLHttpRequest();                
			}
			return xmlHttp;
		}
	
		function ServiceRequest(ServerURL,ServiceName,NameSpace,MethodName,CallBack,ParamNames,ParamValues) {
			var xmlHttp = createXMLHttpRequest();
			var SOAPString = GetSOAPHeader(NameSpace,MethodName,ParamNames,ParamValues);
			var SOAPActionHeader = NameSpace + MethodName;
			xmlHttp.open("POST", ServerURL+ServiceName, false);
			//xmlHttp.open("POST", "http://192.168.6.8:8080/m/services/JbxxcxService?wsd/getACertDetailFromWeb", true);
			xmlHttp.onreadystatechange = function(){
				if (xmlHttp.readyState == 4) {
					if (xmlHttp.status == 200 || xmlHttp.status == 0) {
						CallBack(xmlHttp);
					}
				}
			};
			xmlHttp.setRequestHeader("Content-Type", "text/xml");
			xmlHttp.setRequestHeader("SOAPAction", SOAPActionHeader);
			xmlHttp.send(SOAPString);
		}
		
		function GetSOAPHeader(NameSpace,MethodName,ParamNames,ParamValues){
			var SOAPString="";
			//SOAP 1.1
			SOAPString+="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
			SOAPString+="<soap:Body>\n";
			SOAPString+="<" + MethodName + " xmlns=\"" + NameSpace + "\">\n";
			if(ParamNames!=null) {
				for(var i=0,j=ParamNames.length;i<j;i++) {
					SOAPString+="<"+ParamNames[i]+">"+ParamValues[i]+"</"+ParamNames[i]+">\n";
				}
			}
			SOAPString+="</" + MethodName + ">\n";
			SOAPString+="</soap:Body>\n";
			SOAPString+="</soap:Envelope>\n";
			return SOAPString;
		}
		
		function JSPProcessCallBack(xmlHttp) {
			var value = xmlHttp.responseXML.getElementsByTagName("out")[0].firstChild.nodeValue;
			loadXml(value);
		}
		function loadXml(data){
	   //IE下加载xml字符串
	   if(navigator.userAgent.indexOf('MSIE') >= 0) {
	      //加载xml字符串  (IE下的加载方式)
	      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
	      xmlDoc.async = false;  //关闭异步加载,这样作可以使得文档加载完全之前,解析起不会继续执行脚本 
	      xmlDoc.loadXML(data); 
	   }
	   //火狐下加载xml字符串
	  if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
		   //加载xml字符串  (FireFox下的加载方式)
		   var doc = new DOMParser();  
		   var xmlDoc = doc.parseFromString(data, "text/xml"); 
    }
    //遍历list标签
    var elementList;
    elementList = xmlDoc.getElementsByTagName('children');
    
    for(var i = 0; i<elementList.length; i=i+1){
        var value;
        value = elementList[i].getAttribute('id');
        var childs;
        //当前元素的子结点,获得所有列
        childs = elementList[i].childNodes;
        var cellArray = new Array();
        //遍历row的子节点,取得每一个结点的内容
        for(var j = 0; j<childs.length; j=j+1){
          var cell = $.trim($(childs[j]).text());
          var cells = cellArray.push(cell);
        }
        addRow(value,cellArray);
    }
		}
		
		function getWebService(){
			//JSP WebService
			var name = $("#name").val();
			var id_card = $("#id_card").val();
		  var JSPServerURL = "http://192.168.6.8:8080/m/services/";
			var JSPServiceName="JbxxcxService?wsd";
			var JSPNameSpace = "http://192.168.6.8:8080/m/services/JbxxcxService/JbxxcxService?wsdl";
			var JSPMethodName="getACertDetailFromWeb";
			var names=["name","id_card"];
			var values=[name,id_card];
			ServiceRequest(JSPServerURL,JSPServiceName,JSPNameSpace,JSPMethodName,JSPProcessCallBack,names,values);
		}
		/*********
     * 添加一行
     */
		function addRow(new_id, text) {
			$("#"+new_id).remove();
			var insertTr = "<tr id='" + new_id + "'>";
			var context = new Array();
			context = text
			if(context != "" && context.length>0 ){
				for(var i = 0; i < context.length; i = i + 1){
						insertTr = insertTr + "<td bgcolor='#f7f7f7' style='font-size: 12px'>"+context[i]+"</td>";
			}
			insertTr = insertTr + "</tr>";
			$("#gridTable").append(insertTr);
		  }
		}
	</script>

 页面代码:

<body>
<div id="tabCon">
		<div>
			<form id="form1" name="form1" method="post" action="">
		      	<label><span>姓名:</span><input type="text" name="name" id="name" class="cxInput" /></label>
						<label><span>证件号码:</span><input type="text" name="id_card" id="id_card" class="cxInput" /></label>
						<label><span></span><input type="button" name="imageField" value="查询"  onClick="getWebService();"/></label>
						<table id="gridTable" width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">证件类型</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">证件编号</th>
				    	<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px">姓名</th>
				    	<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px">性别</th>
				    	<th width="4%" bgcolor="#B6E0F9" style="font-size: 12px">职务</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">身份证号</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">单位名称</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">发证日期</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">证件状态</th>
				    	<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px">一次复审期限</th>
				    	<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px">二次复审期限</th>
				    	<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px">证件有效期开始</th>
				    	<th width="8%" bgcolor="#B6E0F9" style="font-size: 12px">证件有效期结束</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">复审记录1</th>
				    	<th width="5%" bgcolor="#B6E0F9" style="font-size: 12px">复审记录2</th>
           </table>
				</form>
		</div>
		</div>
</body>

 

2
0
分享到:
评论

相关推荐

    JavaScript调用WebService实例总结

    JavaScript调用WebService是一种常见的在客户端与服务器之间进行数据交互的方式,尤其在Web应用程序中,它允许JavaScript代码直接访问Web服务提供的功能。以下是对这个实例的详细解析和相关知识点的总结: 1. ...

    Javascript调用WebService

    使用javascript 中Ajax技术调用WebService,包括JSP和ASP.NET中两种,其中JSP的WebService使用了XFire框架。 ASP.NET中的WebService做了一个方法示例GetProgress,包含3个参数。 JSP中的WebService做了hello方法的...

    使用javascript调用webservice示例.pdf

    在本文中,我们将深入探讨如何使用JavaScript调用Web服务,特别是SOAP Web服务。JavaScript是一种广泛应用于客户端浏览器的脚本语言,它可以用来与服务器进行交互,包括调用Web服务以获取或发送数据。以下是一个示例...

    使用JavaScript调用WebService的示例

    本篇将深入探讨如何使用JavaScript调用WebService,帮助开发者理解和掌握这一技术。 首先,了解WebService的基本概念。WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的应用程序接口(API),允许不同...

    Javascript调用Webservice的汇集

    Javascript调用Webservice的汇集

    使用javascript调用webservice示例归类.pdf

    JavaScript调用WebService是一种常见的在客户端与服务器之间进行通信的方式,特别是在Web应用程序中。在这个示例中,我们将讨论如何使用JavaScript来调用不同平台(如C#和Java)编写的WebService,以及实现跨浏览器...

    ajax和JavaScript分别调用Webservice实例

    JavaScript调用WebService的过程可能涉及到JSON或XML格式的数据解析,因为WebService通常以这些格式返回数据。 然后,是WebService。WebService是一种基于标准的,可互操作的Web应用程序,它可以通过HTTP协议提供...

    用JavaScript调用WebService的示例

    ### 使用JavaScript调用WebService的方法与实例 随着互联网技术的发展,跨平台、跨语言的数据交互变得越来越重要。在众多实现方式中,使用JavaScript调用WebService是一种常见的解决方案。本文将基于提供的标题“用...

    Javascript调用Webservice的Htc(修改了微软未发现的bug)

    微软提供的javascript调用webservice的webservice.htc有一bug,就是当前页面url(例如Test.aspx?keyno=/a)如果有/则无法调用webservice。

    js调用webservice示例+源码

    本文将深入探讨如何使用JavaScript调用Web Service,以及如何解决在这个过程中遇到的问题,以配合“js调用webservice示例+源码”的主题。 Web Service是一种基于网络的、平台无关的服务,它通过SOAP(Simple Object...

    使用javascript调用webservice

    JavaScript调用Web Service是一种在客户端通过JavaScript代码与服务器端的Web Service进行交互的技术。Web Service是一种基于SOA(Service-Oriented Architecture,面向服务架构)的设计理念,它允许不同的系统之间...

    C#javascript调用webservice

    综上所述,C#和JavaScript调用Web服务涉及了异步请求、数据序列化与反序列化等多个环节。理解这些概念和技术对于开发跨平台、分布式系统至关重要。通过学习和实践,开发者能够有效地整合各种系统资源,实现数据的...

    用javascript调用webservice

    用ajax技术调用webservice实例

    java webservice axis2 通过 js javascript 调用webservice

    webseservice 客户端调用,java发布的axis2 webservice,通过 js调用调用webservice,普通ajax实现,里面有详细注释,代码简单明了,我自己做过测试。希望对大家有所帮助。

    Js调用webService示例

    JavaScript调用WebService是一种常见的前后端通信方式,尤其在Web应用程序中,它允许客户端与服务器进行异步数据交换,实现动态内容的更新。本示例旨在详细介绍如何使用JavaScript调用WebService,以及涉及的相关...

    几种调用WebService的方法

    #### 使用JavaScript调用WebService 给定的部分内容展示了一种使用JavaScript来调用WebService的方法。此方法主要依赖于`Microsoft.XMLHTTP`对象,这是一个用于发送HTTP请求并接收响应的对象,通常在客户端脚本中...

    js调用webService组件

    JavaScript调用WebService组件是Web开发中的常见操作,主要用于在客户端与服务器端进行数据交互。WebService是一种基于HTTP协议的,能够跨平台、跨语言的服务接口,它通过SOAP(Simple Object Access Protocol)消息...

    使用javascript调用webservice示例[借鉴].pdf

    在本文中,我们将深入探讨如何使用JavaScript调用Web服务,特别是SOAP Web Service。JavaScript是一种广泛应用于客户端Web开发的脚本语言,它允许我们与服务器端的Web服务进行交互,实现异步数据传输,提高用户体验...

    JS调用WebService源码

    本压缩包包含了一个简单的示例项目——"WebApplication1",用于演示如何使用JavaScript调用WebService。 在JavaScript中,调用WebService通常涉及到XMLHttpRequest对象或更现代的fetch API。以下是一些关键知识点:...

    C#中js调用WebService实现无刷新

    总的来说,C#中通过JavaScript调用WebService实现无刷新更新,是一种常见的Web开发技术,它结合了服务器的强大处理能力和客户端的实时交互,为用户提供了流畅的Web应用体验。理解并熟练掌握这种技术,对于Web开发者...

Global site tag (gtag.js) - Google Analytics