zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SEO网站优化10大要点
    三维翻动效果的jquery特效代码
    多款国外虚拟主机简单比较
    jquery同步调用ajax
    3D虚拟技术
    最简单jquery.ajax+php例子(对话框显示文本框输入内容),以小见大(初学手记)
    正则表达式学习博客
    关于XHTML头部声明,什么是DOCTYPE?
    Iframe高度自适应(兼容IE/Firefox、同域/跨域)
    3D立体产业链的发展现状和趋势
  • 原文地址:https://www.cnblogs.com/manyiString/p/js4.html
Copyright © 2011-2022 走看看