zoukankan      html  css  js  c++  java
  • jQuery Ajax 方法调用 Asp.Net WebService 的详细例子

    WebService代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Data;
    namespace jQuery.Learning
    {
      /// <summary>
      /// WebService1 的摘要说明
      /// </summary>
      [WebService(Namespace = "http://tempuri.org/")]
      [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
      [System.ComponentModel.ToolboxItem(false)]
      // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
      [System.Web.Script.Services.ScriptService]
      public class WebService1 : System.Web.Services.WebService
      {
        /// <summary>
        /// 无参数
        /// </summary>
        /// <returns></returns>
        [WebMethod]
        public string HelloWorld()
        {
          return "Hello World ";
        }
        /// <summary>
        /// 带参数
        /// </summary>
        /// <param name="value1"></param>
        /// <param name="value2"></param>
        /// <param name="value3"></param>
        /// <param name="value4"></param>
        /// <returns></returns>
        [WebMethod]
        public string GetWish(string value1, string value2, string value3, int value4)
        {
          return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4);
        }
        /// <summary>
        /// 返回集合
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        [WebMethod]
        public List<int> GetArray(int i)
        {
          List<int> list = new List<int>();
          while (i >= 0)
          {
            list.Add(i--);
          }
          return list;
        }
        /// <summary>
        /// 返回一个复合类型
        /// </summary>
        /// <returns></returns>
        [WebMethod]
        public Class1 GetClass()
        {
          return new Class1 { ID = "1", Value = "牛年大吉" };
        }

    前台代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
      <title></title>
      <script src="jquery.js" type="text/javascript"></script>
      <style type="text/css">
        .hover
        {
          cursor: pointer; /*小手*/
          background: #ffc; /*背景*/
        }
        .button
        {
           150px;
          float: left;
          text-align: center;
          margin: 10px;
          padding: 10px;
          border: 1px solid #888;
        }
        #dictionary
        {
          text-align: center;
          font-size: 18px;
          clear: both;
          border-top: 3px solid #888;
        }
        #loading
        {
          border: 1px #000 solid;
          background-color: #eee;
          padding: 20px;
          margin: 100px 0 0 200px;
          position: absolute;
          display: none;
        }
        #switcher
        {
        }
      </style>
      <script type="text/javascript">
        //无参数调用
        $(document).ready(function() {
          $('#btn1').click(function() {
            $.ajax({
              type: "POST",  //访问WebService使用Post方式请求
              contentType: "application/json", //WebService 会返回Json类型
              url: "WebService1.asmx/HelloWorld", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
              data: "{}",     //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到   
              dataType: 'json',
              success: function(result) {   //回调函数,result,返回值
                $('#dictionary').append(result.d);
              }
            });
          });
        });
        //有参数调用
        $(document).ready(function() {
          $("#btn2").click(function() {
            $.ajax({
              type: "POST",
              contentType: "application/json",
              url: "WebService1.asmx/GetWish",
              data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}",
              dataType: 'json',
              success: function(result) {
                $('#dictionary').append(result.d);
              }
            });
          });
        });
        
        
        //返回集合(引用自网络,很说明问题)
        $(document).ready(function() {
          $("#btn3").click(function() {
            $.ajax({
              type: "POST",
              contentType: "application/json",
              url: "WebService1.asmx/GetArray",
              data: "{i:10}",
              dataType: 'json',
              success: function(result) {
                $(result.d).each(function() {
                  //alert(this);
                  $('#dictionary').append(this.toString() + " ");
                  //alert(result.d.join(" | "));
                });
              }
            });
          });
        });
        //返回复合类型
        $(document).ready(function() {
          $('#btn4').click(function() {
            $.ajax({
              type: "POST",
              contentType: "application/json",
              url: "WebService1.asmx/GetClass",
              data: "{}",
              dataType: 'json',
              success: function(result) {
                $(result.d).each(function() {
                  //alert(this);
                  $('#dictionary').append(this['ID'] + " " + this['Value']);
                  //alert(result.d.join(" | "));
                });
              }
            });
          });
        });
        //Ajax 为用户提供反馈,利用ajaxStart和ajaxStop 方法,演示ajax跟踪相关事件的回调,他们两个方法可以添加给jQuery对象在Ajax前后回调
        //但对与Ajax的监控,本身是全局性的
        $(document).ready(function() {
          $('#loading').ajaxStart(function() {
            $(this).show();
          }).ajaxStop(function() {
            $(this).hide();
          });
        });
        // 鼠标移入移出效果,多个元素的时候,可以使用“,”隔开
        $(document).ready(function() {
          $('div.button').hover(function() {
            $(this).addClass('hover');
          }, function() {
            $(this).removeClass('hover');
          });
        });
        
        
      </script>
    </head>
    <body>
      <form id="form1" runat="server">
      <div id="switcher">
        <h2>
          jQuery 的WebServices 调用</h2>
        <div class="button" id="btn1">
          HelloWorld</div>
        <div class="button" id="btn2">
          传入参数</div>
        <div class="button" id="btn3">
          返回集合</div>
        <div class="button" id="btn4">
          返回复合类型</div>
          </div>
      <div id="loading">
        服务器处理中,请稍后。
      </div>
      <div id="dictionary">
      </div>
      </form>
    </body>
    </html>

  • 相关阅读:
    JQuery学习
    前端Web APIs 二
    前端Web APIS
    Swift 函数式数据结构
    JAVA 四大域对象总结
    Java 访问 C++ 方法:JavaCPP
    写Java也得了解CPU–CPU缓存
    Servlet使用注解标注监听器(Listener)
    Java使用Fork/Join框架来并行执行任务
    Linux学习之让进程在后台可靠运行的方法详解
  • 原文地址:https://www.cnblogs.com/tianguook/p/1896492.html
Copyright © 2011-2022 走看看