JS调用webservice

Javascript调用WebService

在项目中添加WebService.asmx文件,然后就可以写方法了,上代码:

第一步:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Services;
 6 
 7 /// <summary>
 8 ///WebService 的摘要说明
 9 /// </summary>
10 [WebService(Namespace = "http://tempuri.org/")]
11 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
12 //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
13 [System.Web.Script.Services.ScriptService]
14 public class WebService : System.Web.Services.WebService
15 {
16 
17     public WebService()
18     {
19 
20         //如果使用设计的组件,请取消注释以下行 
21         //InitializeComponent(); 
22     }
23 
24     [WebMethod]
25     public string HelloWorld()
26     {
27         return "Hello World";
28     }
29     [WebMethod]
30     public string HelloWorld(string message)
31     {
32         return message;
33     }
34 
35 }

第二步:在这里我尝试了在不同的模式中用,首先在普通的webForm页面中用:

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

将此段代码加到页面中,这样我们在JS里面就可以调用webservice中的函数

 1 <script type="text/javascript">
 2         function GetString()
 3         {
 4             JsWebService.GetString(GetStringCallBack);  //在WebService中调用方法,并设置回调函数
 5         }
 6         function GetStringCallBack(result)  
 7         {
 8             alert(result);
 9         }
10         
11         function GetStringParam(name) {
12             JsWebService.GetString(name,GetStringParamCallBack);  //在WebService中调用方法,并设置回调函数,如果此方法中带有参数则在回调函数前加入此参数。
13         }
14         function GetStringParamCallBack(result)
15         {
16             alert(result);
17         }
18         
19         function GetList()
20         {
21             JsWebService.GetList(GetListCallBack);
22         }
23         function GetListCallBack(result)
24         {
25             if(result.length!=0)
26             {
27                 for(var i=0;i<result.length;i++)
28                 {
29                     document.getElementById("contentDivGetList").innerHTML += result[i] + "<br/>";
30                 }
31             }
32         }
33         
34         function GetObjectList()
35         {
36             JsWebService.GetObjectList(GetObjectListCallBack);
37         }
38         function GetObjectListCallBack(result)
39         {
40             if(result.length!=0)
41             {
42                 for(var i=0;i<result.length;i++)
43                 {
44                     document.getElementById("contentDivGetObjectList").innerHTML += "姓名:" + result[i].Name + "  年龄:" + result[i].Age + "<br/>";
45                 }
46             }
47         }
48         
49     </script>

 然后,我在MVC中使用JS调用webservice:在MVC中,不能用ScriptManager控件,这里要用MicrosoftAjax.js,然后引入webservice:

 1 <script type="text/javascript">
 2         function success(result) {
 3             alert(result);
 4         }
 5 
 6         function faild(error) {
 7             alert("Error:"+error.get_message());
 8         }
 9 
10         function pageLoad() {
11             Sys.Net.WebServiceProxy.invoke(
12                 "http://www.cnblogs.com/WebService/WebService.asmx", //地址
13                 "HelloWorld",//要调用的方法
14                 false,//GET  or  Post 方式
15                 {msg:"123"},//参数
16                 success,//执行成功时调用的函数
17                 faild,//执行失败时调用的函数
18                             //回传给客户端的数据
19                 3000//超时timeout
20             );
21         }
22     </script>

 

注意Sys.Net.WebServiceProxy.invoke()方法是在pageLoad()中调用的方法。这个方法请求一个Web Service。这个invoke()方法接收一下几个参数:

         servicePath:WCF或者ASMX Web Service的路径;

         methodName:Web方法的名称;

         useGet:确定使用Get或者Post(默认Get);

         params:一列要传给Web方法的参数;

         onSuccess:Web方法成功调用后要执行的Javascript函数;

         onFailure:Web方法调用失败后要执行的Javascript函数;

         userContext:回传到客户端的数据;

   timeout:在Web Service终止前的时间();

更多关于MVC中用ASP.NET AJAX控件http://www.cnblogs.com/manyiString/archive/2012/05/23/js5.html

原文地址:https://www.cnblogs.com/manyiString/p/js4.html