代码改变世界

用javascript调用.net webservices实例 [转]

2011-09-21 16:42  Eric.Hu  阅读(236)  评论(0编辑  收藏  举报

用javascript调用webservices 是项目开发当中的一项非常实用的技术。下面我们就以两个数的加法为例说明如何使用javascript调用.net web服务。

首先有一个.net web服务,实现的功能为接收两个参数,做加法运算,并将结果返回。


webservice实现加法的方法如下:
     [WebMethod]
    public double Add(double a,double b)
    {
         //简单的web服务
        return a+b;
    }

默认的web服务是不能被javascript调用的,因为默认的web服务只支持POST方式,不支持GET方式。所以必须在web.config手动添加添加

webServices配置节点。
   <webServices>
      <protocols>
        <add name="HttpPost" />
        <add name="HttpGet" />
      </protocols>
    </webServices>


web服务创建好并进行正确的配置就可以用JAVASCRIPT进行调用了:


    <script language =javascript>
        function callService()
        {
            //js调用后台的web服务
            docsubmit =new ActiveXObject("microsoft.xmldom");
            docsubmit.async = false;  
            
            //取得用户输入值,
            var a=document.getElementById ("a").value; 
            var b=document.getElementById ("b").value; 
            //指定web服务的路径,方法和需要传递的参数,注意参数名一定要和webservies方法里面的参数名一致;
            docsubmit.load("http://localhost/JsCallWebService/WebService.asmx/Add?a="+a+"&b="+b);   
            window.document .getElementById ("res").innerText ="计算的结果是:"+docsubmit.text;
        }
    </script>

    <div>
    <span >js调用web服务</span> <br />
    <input id="a"  type ="text"/><br />
    <input id="b"  type ="text"/>
    <span id="res"></span>
    <input id="Button1"  onclick ="callService()" type="button" value="调用web服务" />
    </div>