軟件工程實踐者

          統計

          留言簿

          友情鏈結

          閱讀排行榜

          評論排行榜

          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 軟件工程實踐者 閱讀(1218) 評論(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 你爹

          傻逼  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 茶陵县| 汶川县| 华蓥市| 商洛市| 兰州市| 乌鲁木齐市| 柘荣县| 二连浩特市| 乐陵市| 甘南县| 上杭县| 会宁县| 凤翔县| 介休市| 呼图壁县| 宝清县| 望谟县| 岑巩县| 泰和县| 四子王旗| 平谷区| 濮阳市| 东海县| 文水县| 班玛县| 乾安县| 巴林左旗| 蕲春县| 浮山县| 高淳县| 抚顺县| 勃利县| 海伦市| 周宁县| 长汀县| 阿拉尔市| 平塘县| 壤塘县| 马鞍山市| 临澧县| 易门县|