zoukankan      html  css  js  c++  java
  • Jquery+JSON+WebService使用总结

    前端代码(dataTest.html)

      1 <!DOCTYPE html>
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3 <head>
      4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      5     <title></title>
      6     <script src="js/jquery-1.4.1-vsdoc.js"></script>
      7     <!--<script type="text/javascript" src="js/jquery-1.4.1-vsdoc.js"></script>-->
      8     <script type="text/javascript">
      9         
     10         $(function () {
     11             //1、webservice中将对象转换为json以字符串格式返回
     12             $("#btn").click(function () {
     13                 $.ajax({
     14                     type: "POST",
     15                     url: "data.asmx/GetUser",
     16                     data: { orderType: "asc" }, //注意这个地方的orderType是调用da.asmx(webservice)中GetUser的参数
     17                     success: function (data) {
     18                         var json = null;
     19                         try {
     20                             json = eval('(' + data.text + ')');//注意这里两边的括号不可以去掉,因为在JS中每个方法都可以作为一个类来生成对象,这里就是用简易的方式来生成json对象。
     21                             //alert(json[0].ID);//获取json对象信息
     22                             $.each(json, function (i, n) {//遍历获取json对象信息
     23                                 alert(n.ID+" "+n.Name);
     24                             });
     25                         } catch (e) {
     26                             alert("返回字符串不是json格式!");
     27                             return;
     28                         }
     29                     }
     30                 });
     31             });
     32             //2、无参数 有返回值的调用
     33             $("#btn1").click(function () {
     34                 $.ajax({
     35                     type: "POST",
     36                     contentType: "application/json; charset=utf-8",
     37                     url: "data.asmx/HelloWorld",
     38                     data: "{}",
     39                     dataType: "json",
     40                     success: function (json) { alert(json.d); },
     41                     error: function (error) {
     42                         alert("调用出错" + error.responseText);
     43                     }
     44                 });
     45             });
     46             //3、简单参数 简单返回值的调用
     47             $("#btn2").click(function () {
     48                 $.ajax({
     49                     type: "POST",
     50                     contentType: "application/json; charset=utf-8",
     51                     url: "data.asmx/SimpleReturns",
     52                     data: "{name:'张三'}",
     53                     dataType: "json",
     54                     success: function (json) { alert(json.d); },
     55                     error: function (error) {
     56                         alert("调用出错" + error.responseText);
     57                     }
     58                 });
     59             });
     60             //4、复杂参数 复杂返回值的调用
     61             $("#btn3").click(function () {
     62                 $.ajax({
     63                     type: "POST",
     64                     contentType: "application/json; charset=utf-8",
     65                     url: "data.asmx/GetStudentList",
     66                     data: "{stu:{ID:'6',Name:'ff'}}",
     67                     dataType: "json",
     68                     success: function (json) {
     69                         $.each(json.d, function (i, n) {
     70                             alert(n.ID + " " + n.Name);
     71                         });
     72                     },
     73                     error: function (error) {
     74                         alert("调用出错" + error.responseText);
     75                     }
     76                 });
     77             });
     78             //5、返回匿名对象的WebMethod的调用
     79             $("#btn4").click(function () {
     80                 $.ajax({
     81                     type: "POST",
     82                     contentType: "application/json; charset=utf-8",
     83                     url: "data.asmx/ReturnNoNameClass",
     84                     data: "{}",
     85                     dataType: "json",
     86                     success: function (json) { alert(json.d.ID); },
     87                     error: function (error) {
     88                         alert("调用出错" + error.responseText);
     89                     }
     90                 });
     91             });
     92             //6、返回DataTable(XML)
     93             $('#btn5').click(function () {
     94                 $.ajax({
     95                     type: "POST",
     96                     url: "data.asmx/ReturnXML",
     97                     data: "{}",
     98                     dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
     99                     success: function (result) {
    100                         //演示一下捕获
    101                         try {
    102                             $(result).find("xmltest").each(function () {
    103                                 alert($(this).find("Name").text() + " " + $(this).find("Age").text());
    104                             });
    105                         }
    106                         catch (e) {
    107                             alert(e);
    108                             return;
    109                         }
    110                     },
    111                     error: function (result, status) { //如果没有上面的捕获出错会执行这里的回调函数
    112                         if (status == 'error') {
    113                             alert(status);
    114                         }
    115                     }
    116                 });
    117             });
    118             //7、返回数组
    119             $("#btn6").click(function () {
    120                 $.ajax({
    121                     type: "POST",
    122                     contentType: "application/json; charset=utf-8",
    123                     url: "data.asmx/ReturnArray",
    124                     data: "{}",
    125                     dataType: "json",
    126                     success: function (json) {
    127                         //alert(json.responseText);
    128                         //var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]];
    129                         //$.each(arr1, function (i, n) {
    130                         //    alert(n[0] + " " + n[1]);
    131                         //});
    132                         $.each(json, function (i, n) {
    133                             alert(n[0] + " " + n[1]);
    134                         });
    135                         alert(json.d);
    136                         alert(json.data);
    137                         alert(json.dataType);
    138                         alert(json.text);
    139                     },
    140                     error: function (error) {
    141                         alert("调用出错" + error.responseText);
    142                     }
    143                 });
    144             });
    145 
    146         })
    147 
    148     </script>
    149 </head>
    150 <body>
    151     <div>
    152         <h1>
    153             <!--Jquery+WebService+Json-->
    154         </h1>
    155         <hr />
    156         <!--<input id="txt" type="text" size="20" runat="server" />-->
    157         <input id="btn" type="button" value="1、webservice中将对象转换为json以字符串格式返回" />
    158         <br /><br /><br />
    159         <input id="btn1" type="button" value="2、无参数 有返回值的调用HelloWorld" />
    160         <br /><br /><br />
    161         <input id="btn2" type="button" value="3、简单参数 简单返回值的调用SimpleReturns" />
    162         <br /><br /><br />
    163         <input id="btn3" type="button" value="4、复杂参数 复杂返回值的调用GetStudentList" />
    164         <br /><br /><br />
    165         <input id="btn4" type="button" value="5、返回匿名对象的WebMethod的调用" />
    166         <br /><br /><br />
    167         <input id="btn5" type="button" value="6、返回DataTable(XML)" />
    168         <br /><br /><br />
    169         <input id="btn6" type="button" value="7、返回数组" />
    170         <hr />
    171     </div>
    172 </body>
    173 </html>

    Webservice代码(data.asmx)

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Web;
      5 using System.Web.Services;
      6 using System.Web.Script.Serialization;
      7 using System.Data;//添加它为了方便序列化
      8 
      9 namespace WSForApp
     10 {
     11     /// <summary>
     12     /// data 的摘要说明
     13     /// </summary>
     14     [WebService(Namespace = "http://tempuri.org/")]
     15     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     16     [System.ComponentModel.ToolboxItem(false)]
     17     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
     18     [System.Web.Script.Services.ScriptService]
     19     public class data : System.Web.Services.WebService
     20     {
     21         [WebMethod]//1、webservice中将对象转换为json以字符串格式返回
     22         public string GetUser(string orderType)
     23         {
     24             User use1 = new User
     25             {
     26                 ID = 1,
     27                 Name = "GXW",
     28                 PWD = "123456"
     29             };
     30 
     31             User use2 = new User
     32             {
     33                 ID = 2,
     34                 Name = "GXW2",
     35                 PWD = "23456"
     36             };
     37 
     38             User use3 = new User
     39             {
     40                 ID = 3,
     41                 Name = "3GXW2",
     42                 PWD = "3456"
     43             };
     44             List<User> list = new List<User>();
     45             list.Add(use1);
     46             list.Add(use2);
     47             list.Add(use3);
     48             return ToJSON(list);
     49         }
     50         [WebMethod]//2、无参数 有返回值的调用
     51         public string HelloWorld()
     52         {
     53             return "Hello World";
     54         }
     55 
     56         [WebMethod]//3、简单参数 简单返回值的调用
     57         public string SimpleReturns(string name)
     58         {
     59             return String.Format("您的姓名是{0}", name);
     60         }
     61 
     62         [WebMethod]//4、复杂参数 复杂返回值的调用 返回集合值
     63         public List<Student> GetStudentList(Student stu)
     64         {
     65             List<Student> studentList = new List<Student>
     66             {
     67                 new Student{ID=1,Name="张三"},
     68                 new Student{ID=2,Name="李四"}
     69             };
     70             //把从客户端传来的实体放回到返回值中
     71             studentList.Add(stu);
     72             return studentList;
     73         }
     74 
     75         [WebMethod]//5、返回匿名对象的WebMethod的调用
     76         public object ReturnNoNameClass()
     77         {
     78             return new { ID = 1, Name = "张三" };
     79         }
     80 
     81         [WebMethod]//6、返回DataTable(XML)
     82         public System.Data.DataTable ReturnXML()
     83         {
     84             System.Data.DataTable dt = new System.Data.DataTable();
     85             dt.Columns.Add("Name");
     86             dt.Columns.Add("Age", typeof(int));
     87             DataRow dr = dt.NewRow();
     88             dr[0] = "wangbin";
     89             dr[1] = 11;
     90             dt.Rows.Add(dr);
     91             DataRow dr1 = dt.NewRow();
     92             dr1[0] = "lipan";
     93             dr1[1] = 22;
     94             dt.Rows.Add(dr1);
     95             dt.TableName = "xmltest";
     96             return dt;
     97         }
     98 
     99         [WebMethod]//7、数组
    100         public int[] ReturnArray()
    101         {
    102             //Array arr={[1, 4, 3], [4, 6, 6], [7, 20, 9]};
    103             //int[,,] array = new int[,,] { {{ 1, 4, 3 }}, {{ 4, 6, 6 }}, {{ 7, 20, 9 }}};
    104             int[] array = new int[] { 1, 4, 3 };
    105             return array;
    106         }
    107 
    108         //对数据序列化,返回JSON格式 
    109         public string ToJSON(object obj)
    110         {
    111             JavaScriptSerializer serializer = new JavaScriptSerializer();
    112             return serializer.Serialize(obj);
    113         }
    114     }
    115 
    116     public class User
    117     {
    118         public int ID { get; set; }
    119         public string Name { get; set; }
    120         public string PWD { get; set; }
    121     }
    122 
    123     public class Student
    124     {
    125         public int ID { get; set; }
    126         public string Name { get; set; }
    127     }
    128 }

     web.config

    1 <webServices>
    2       <protocols>
    3         <add name= "HttpPost"/>
    4         <add name= "HttpGet"/>
    5       </protocols>
    6  </webServices>
  • 相关阅读:
    K8S学习笔记之k8s使用ceph实现动态持久化存储
    Linux学习笔记之Centos7 自定义systemctl服务脚本
    ELK学习笔记之Kibana权限控制和集群监控
    ELK学习笔记之ELK6.0 X-pack设置用户名和密码
    Linux学习笔记之rsync配置
    K8S学习笔记之Pod的Volume emptyDir和hostPath
    不小心删除了某个包的一部分,重新安装方法
    串口数据解析总结
    CMakeLists 链接库相关指令
    google 开源项目阅读计划
  • 原文地址:https://www.cnblogs.com/tiandaowuji/p/4081468.html
Copyright © 2011-2022 走看看