在Asp.net中,客户端脚本调用Web service的2种方法。

当今时代,是Ajax横行的时代,下面介绍2种在Asp.net里调用Web service的方法。

一.微软的Ajax脚本调用Web service

第一步:添加ScriptManger控件,注意一定要设置正确的引用URL,否则后面调试的时候会很郁闷。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path = "~/WebService.asmx" />
        </Services>
    </asp:ScriptManager>

第二步:在Web Config文件中正确的添加节点

      1. 在System.web下添加下列内容

<httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral,  PublicKeyToken=31BF3856AD364E35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>

    2. 如果后期调用Web service失败,错误信息“Request format is unrecognized for URL unexpectedly ending in  '/HelloWorld'.”,那么你就需要再在System.Web下面添加下面的节点。

    <webServices>

      < protocols >
        < add name = "HttpGet" />
        < add name = "HttpPost" />
      </ protocols >
    </ webServices >

第三步:在后台添加一个.asmx文件

这里需要注意2点:

    1. 需要在类上添加属性[System.Web.Script.Services.ScriptService],以允许使用脚本调用Web service;

    2.需要在类里德方法上添加属性[WebMethod],以至于ajax请求能够找到你要调用的方法。

       例如:

    [System.Web.Script.Services.ScriptService]
    public class ExampleWebService : System.Web.Services.WebService

    {

        [WebMethod(EnableSession = true) ]//红字标注的是你可以在这个方法里使用Session数据
        public string HelloWorld()
        {
            return "Hello World";
        }

   }

第四步:JS脚本调用Web service

<script type="text/javascript" language="javascript">
        function Succsess(result) {
            alert(result);
        }
        function Fail(ex) {
            alert("failure:" + ex.get_message());
        }

        ExampleWebService .HelloWorld(Success, Fail);

    </script>

二. 使用jquery的ajax函数调用Web serivce

用该方法时,需要按照上面的第二步设置web config文件,按照第三步建立service类。

Jquery调用Web service,注意默认时请求类型是POST

$.ajax({
                 type: "POST",
                 async: false,
                 url: "WebServices/ValidateService.asmx/CheckFirstName",
                 data: { ParaName: ParaValue},
                 success: function (result) {
                 var Result = true;
                 if ($.browser.mozilla) {
                        Result = result.firstChild.firstChild.textContent;
                  }
                 else if ($.browser.safari) {
                        Result = result.firstChild.firstChild.nodeValue;
                  }
                  else {
                        Result = result.text;
                  }

});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值