軟件工程實踐者

          統計

          留言簿

          友情鏈結

          閱讀排行榜

          評論排行榜

          JavaScript調用Web service

          要調用的Web服務是求兩個整數和,并返回結果。

          服務的WSDL文件內容如下:
          <?xml version="1.0" encoding="utf-8" ?> 
          <wsdl:definitions
              xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
              xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
              xmlns:s="http://www.w3.org/2001/XMLSchema" 
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
              xmlns:tns="http://tempuri.org/"  
              xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
              xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
              targetNamespace="http://tempuri.org/" 
              xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
            <wsdl:types>
               <s:schema elementFormDefault="qualified"  
                  targetNamespace="http://tempuri.org/">
                  <s:element name="AddTwoIntegers">
                      <s:complexType>
                         <s:sequence>  
                            <s:elementminOccurs="1" maxOccurs="1" name="IntegerOne" type="s:int" />    
                            <s:elementminOccurs="1" maxOccurs="1" name="IntegerTwo" type="s:int" />   
                         </s:sequence>
                      </s:complexType>
                  </s:element>
                  <s:element name="AddTwoIntegersResponse">
                      <s:complexType>
                          <s:sequence> 
                             <s:elementminOccurs="1" maxOccurs="1" name="AddTwoIntegersResult" type="s:int" />    
                          </s:sequence>
                      </s:complexType>
                  </s:element>
               </s:schema>
            </wsdl:types>
            <wsdl:message name="AddTwoIntegersSoapIn"> 
                <wsdl:part name="parameters" element="tns:AddTwoIntegers" />
            </wsdl:message>
            <wsdl:message name="AddTwoIntegersSoapOut">  
                <wsdl:part name="parameters" element="tns:AddTwoIntegersResponse" />   
             </wsdl:message>
             <wsdl:portType name="SimpleServiceSoap">
                 <wsdl:operation name="AddTwoIntegers">
                    <wsdl:input message="tns:AddTwoIntegersSoapIn" />
                    <wsdl:output message="tns:AddTwoIntegersSoapOut" />    
                 </wsdl:operation> 
             </wsdl:portType>
          
             <wsdl:binding name="SimpleServiceSoap" type="tns:SimpleServiceSoap"> 
                 <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
                 <wsdl:operation name="AddTwoIntegers">   
                     <soap:operation soapAction="http://tempuri.org/AddTwoIntegers" style="document" /> 
                     <wsdl:input>  
                         <soap:body use="literal" />    
                     </wsdl:input>
                     <wsdl:output>  
                         <soap:body use="literal" />    
                     </wsdl:output>
                 </wsdl:operation>
            </wsdl:binding>
            <wsdl:service name="SimpleService"> 
                <documentation xmlns="http://schemas.xmlsoap.org/wsdl/" /> 
                <wsdl:port name="SimpleServiceSoap" binding="tns:SimpleServiceSoap">  
                    <soap:address location="http://localhost/Develop.NET/Home.Develop.WebServices/SimpleService.asmx"/>  
                </wsdl:port>  
            </wsdl:service> 
          </wsdl:definitions>
          


          javaScript代碼中利用了MS的HTTP代理對象XMLHTTP,在Mozilla's Web brower中相應的組件是XMLHttpRequest,他們都提供了類似的方法來完成soap請求。下面的代碼用的是IE中的XMLHTTP對象。代碼假定調用過程中沒有Fault。
          function fncAddTwoIntegers(a, b)
          {    
              var oXmlHttp = new ActiveXObject("MSXML2.XMLHTTP");      
              oXmlHttp.open("POST", "http://localhost/Develop.NET/Home.Develop.WebServices/SimpleService.asmx'", false);
              oXmlHttp.setRequestHeader("Content-Type", "text/xml");    
              oXmlHttp.setRequestHeader("SOAPAction", "http://tempuri.org/AddTwoIntegers");
          
              oXmlHttp.send("      
          <soap:Envelopexmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
          <soap:Body> <AddTwoIntegersxmlns='http://tempuri.org/'> <IntegerOne>" + a + "</IntegerOne> <IntegerTwo>" + b + "</IntegerTwo> </AddTwoIntegers>
          </soap:Body> </soap:Envelope>"); return oXmlHttp.responseXML.selectSingleNode("http://AddTwoIntegersResult").text; }


          原文英文出自:http://builder.com.com/5100-6371_14-5887775.html?tag=nl.e601

          posted on 2006-01-05 20:01 軟件工程實踐者 閱讀(1223) 評論(3)  編輯  收藏 所屬分類: Web service

          評論

          # re: JavaScript調用Web service 2010-12-06 17:53 你爹

          傻逼  回復  更多評論   

          # re: JavaScript調用Web service 2010-12-06 17:54 你爹

          傻逼,不好使  回復  更多評論   

          # re: JavaScript調用Web service 2010-12-06 17:54 你爹

          傻逼  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 康平县| 阿巴嘎旗| 贞丰县| 上栗县| 清水河县| 岚皋县| 横峰县| 拉萨市| 江源县| 揭东县| 雅江县| 永城市| 枝江市| 剑阁县| 亚东县| 巴中市| 福泉市| 渭源县| 鄯善县| 仲巴县| 凤冈县| 吉隆县| 咸丰县| 太和县| 体育| 屏山县| 辽宁省| 页游| 衡阳县| 静乐县| 南岸区| 若羌县| 咸宁市| 蒲城县| 盘山县| 青州市| 桃江县| 封开县| 乐业县| 浦北县| 琼海市|