在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;                  

    }

});

转载于:https://www.cnblogs.com/m-game/archive/2012/03/13/2392722.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值