• VS2012 + .net 4.0 + WebService + Jquery 1.9.1 + ajax亲测不坑爹例子


    这个测试内容比较复杂,按照以下步骤去做,对于老手来说,可能也需要半个小时左右。有任何问题,请加QQ群讨论:23152359

    最终效果图:

    步骤:

    1.建立项目。

        文件 -> 新建 -> 项目 -> 模板/Visual C#/Web/ASP.Net 空Web 应用程序,我用的是.net 4.0,在.net 4.5应该也一样。假设工程名字为 WebApplication3

    2.增加WebService

        解决方案资源管理器 -> 鼠标左键单击选中 WebApplication3 -> 对WebApplication3单击鼠标右键,在弹出的菜单中选择:添加 -> 新建项 -> Visual C#/Web/Web 服务 ,名称填 WebService1.asmx(默认就是这个名字) -> 添加

    3.修改WebService1.asmx

        上一步,添加后,会自动打开 WebService1.asmx.cs 

        3.1 看到这两行没?

    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]

            把 [System.Web.Script.Services.ScriptService] 前面的注释删掉。

        3.2 把WebService1.asmx.cs,修改为:

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Web;
      5 using System.Web.Services;
      6 using System.Diagnostics;
      7 
      8 namespace WebApplication3
      9 {
     10     /// <summary>
     11     /// WebService1 的摘要说明
     12     /// </summary>
     13     [WebService(Namespace = "http://tempuri.org/")]
     14     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     15     [System.ComponentModel.ToolboxItem(false)]
     16     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
     17     [System.Web.Script.Services.ScriptService]
     18     public class WebService1 : System.Web.Services.WebService
     19     {
     20 
     21         [WebMethod]
     22         public string HelloWorld()//不管这个
     23         {
     24             return "Hello World";
     25         }
     26 
     27         [WebMethod]
     28         public void Test1_NoArg_NoReturn()//测试1:无参数,无返回
     29         {
     30             Debugger.Log(0, "", "Test1_NoArg_NoReturn被调用!!\r\n");//记得在调试时,打开输出面板,才能看到这句话。打开方法:在调试时,菜单 -> 视图 -> 输出
     31             return;
     32         }
     33 
     34         [WebMethod]
     35         public int Test2_NoArg_ReturnS1()//测试2:无参数,有返回(简单类型_单个)
     36         {
     37             return ((new Random()).Next());
     38         }
     39 
     40         [WebMethod]
     41         public int[] Test3_ArgS1_ReturnSN(int arg_firstNumber)//测试3:有参数(简单类型_单个),有返回(简单类型_多个)
     42         {
     43             int[] intArray = new int[] { arg_firstNumber, (new Random()).Next(), (new Random()).Next(), (new Random()).Next(), (new Random()).Next() };
     44             return intArray;
     45         }
     46 
     47         [WebMethod]
     48         public Class_C Test4_ArgSN_ReturnC1(int[] arg_intValueArray)//测试4:有参数(简单类型_多个),有返回(复杂类型_单个)
     49         {
     50             Class_C result = new Class_C();
     51             result.ID = arg_intValueArray.Length;
     52             result.Name = "参数数量:" + result.ID.ToString() + "";
     53             result.IntArray = new int[arg_intValueArray.Length];
     54             result.StringArray = new string[arg_intValueArray.Length];
     55             for (int i = 0; i < arg_intValueArray.Length; i++)
     56             {
     57                 result.IntArray[i] = arg_intValueArray[i];
     58                 result.StringArray[i] = "StringMode:" + arg_intValueArray[i].ToString();
     59             }
     60             return result;
     61         }
     62 
     63         [WebMethod]
     64         public Class_C[] Test5_ArgC1_ReturnCN(Class_C arg_value)//测试5:有参数(复杂类型_单个), 有返回(复杂类型_多个)
     65         {
     66             Class_C[] resultArray = new Class_C[arg_value.IntArray.Length];
     67             for (int i = 0; i < arg_value.IntArray.Length; i++)
     68             {
     69                 resultArray[i] = new Class_C();
     70                 resultArray[i].ID = i + 1;
     71                 resultArray[i].Name = "ID : " + resultArray[i].ID;
     72                 resultArray[i].IntArray = new int[]{1,2,3,4,5};
     73                 resultArray[i].StringArray = new string[]{"1", "2", "3", "4", "5"};
     74             }
     75             return resultArray;
     76         }
     77 
     78         [WebMethod]
     79         public Class_X Test6_ArgCN_ReturnX1(Class_C[] arg_array)//测试6:有参数(复杂类型_多个), 有返回(复合类型_单个)
     80         {
     81             Class_X result = new Class_X();
     82             result.ID = arg_array.Length;
     83             result.Name = "Name : " + result.ID.ToString();
     84             int[] intArray = new int[arg_array.Length];
     85             string[] stringArray = new string[arg_array.Length];
     86             for (int i = 0; i < arg_array.Length; i++)
     87             {
     88                 intArray[i] = arg_array[i].ID;
     89                 stringArray[i] = arg_array[i].Name;
     90             }
     91             result.IntArray = intArray;
     92             result.StringArray = stringArray;
     93             result.Data = new Class_C();
     94             result.Data.ID = result.ID + 1;
     95             result.Data.Name = "Result.Data : " + result.Data.ID.ToString();
     96             result.Data.IntArray = result.IntArray.Clone() as int[];
     97             result.Data.StringArray = result.StringArray.Clone() as string[];
     98             return result;
     99         }
    100 
    101         [WebMethod]
    102         public Class_X[] Test7_ArgX1_ReturnXN(Class_X arg_value)//测试7:有参数(复合类型_单个), 有返回(复合类型_多个)
    103         {
    104             Class_X[] resultArray = new Class_X[arg_value.ID];
    105             for (int i = 0; i < resultArray.Length; i++)
    106             {
    107                 resultArray[i] = new Class_X();
    108                 resultArray[i].ID = i + 1;
    109                 resultArray[i].Name = "Name : " + resultArray[i].ID.ToString();
    110                 int[] intArray = new int[arg_value.ID];
    111                 string[] stringArray = new string[arg_value.ID];
    112                 for (int j = 0; j < arg_value.ID; j++)
    113                 {
    114                     intArray[j] = j + 1;
    115                     stringArray[j] = "ArrayMode : " + intArray[j].ToString();
    116                 }
    117                 resultArray[i].IntArray = intArray;
    118                 resultArray[i].StringArray = stringArray;
    119                 resultArray[i].Data = new Class_C();
    120                 resultArray[i].Data.ID = resultArray[i].ID + 1;
    121                 resultArray[i].Data.Name = "Result.Data : " + resultArray[i].Data.ID.ToString();
    122                 resultArray[i].Data.IntArray = resultArray[i].IntArray.Clone() as int[];
    123                 resultArray[i].Data.StringArray = resultArray[i].StringArray.Clone() as string[];
    124             }
    125             return resultArray;
    126         }
    127 
    128         [WebMethod]
    129         public void Test8_ArgXN_NoReturn(Class_X[] arg_array)//测试8:有参数(复合类型_多个),无返回
    130         {
    131             Debugger.Log(0, "", "Test8_ArgXN_NoReturn:arg_array.Length = " + arg_array.Length.ToString() + "\r\n");
    132         }
    133 
    134         [WebMethod]
    135         public void Test9_ArgMixAll_NoReturn(int arg_intValue, string arg_stringValue, Class_C arg_C1Value, Class_C[] arg_CNValue, Class_X arg_X1Value, Class_X[] arg_XNValue)//测试9:有参数(多个不同类型的参数),无返回
    136         {
    137             Debugger.Log(0, "", "Test9_ArgMixAll_NoReturn:Use Breakpoint\r\n");
    138         }
    139     }
    140 
    141     [Serializable]
    142     public class Class_C
    143     {
    144         public int ID { get; set; }
    145         public string Name { get; set; }
    146         public int[] IntArray { get; set; }
    147         public string[] StringArray { get; set; }
    148     }
    149 
    150     [Serializable]
    151     public class Class_X
    152     {
    153         public int ID { get; set; }
    154         public string Name { get; set; }
    155         public Class_C Data { get; set; }
    156         public int[] IntArray { get; set; }
    157         public string[] StringArray { get; set; }
    158     }
    159 }

    4.去jquery官网,下载jquery-1.9.1.min.js,然后拖动到解决方案资源管理器的WebApplication3的目录下。拖动后,jquery-1.9.1.min.js应该与Web.config、WebService1.asmx在同一层次。

    5.增加测试用网页

        解决方案资源管理器 -> 鼠标左键单击选中 WebApplication3 -> 对WebApplication3单击鼠标右键,在弹出的菜单中选择:添加 -> 新建项 -> Visual C#/Web/HTML 页 ,名称填 HtmlPage1.html(默认就是这个名字) -> 添加

        然后把HtmlPage1.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     <style type="text/css">
     7         #WebUI_Output {
     8             height: 410px;
     9             width: 1050px;
    10         }
    11     </style>
    12     <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    13     <script type="text/javascript" src="JavaScript.js"></script>
    14 </head>
    15 <body>
    16     <div>
    17         <textarea id="WebUI_Output"></textarea>
    18         <br />
    19         <input type="button" value="Test1_NoArg_NoReturn" onclick="Event__Test1_NoArg_NoReturn()"/>
    20         <br />
    21         <input type="button" value="Test2_NoArg_ReturnS1" onclick="Event__Test2_NoArg_ReturnS1()"/>
    22         <br />
    23         <input type="button" value="Test3_ArgS1_ReturnSN" onclick="Event__Test3_ArgS1_ReturnSN()"/>
    24         <br />
    25         <input type="button" value="Test4_ArgSN_ReturnC1" onclick="Event__Test4_ArgSN_ReturnC1()"/>
    26         <br />
    27         <input type="button" value="Test5_ArgC1_ReturnCN" onclick="Event__Test5_ArgC1_ReturnCN()"/>
    28         <br />
    29         <input type="button" value="Test6_ArgCN_ReturnX1" onclick="Event__Test6_ArgCN_ReturnX1()"/>
    30         <br />
    31         <input type="button" value="Test7_ArgX1_ReturnXN" onclick="Event__Test7_ArgX1_ReturnXN()"/>
    32         <br />
    33         <input type="button" value="Test8_ArgXN_NoReturn" onclick="Event__Test8_ArgXN_NoReturn()"/>
    34         <br />
    35         <input type="button" value="Test9_ArgMixAll_NoReturn" onclick="Event__Test9_ArgMixAll_NoReturn()"/>
    36     </div>
    37 </body>
    38 </html>

        最后,在解决方案资源管理器里,对 HtmlPage1.html 单击鼠标右键,选“设为起始页”。

    6.增加测试用JS文件

        解决方案资源管理器 -> 鼠标左键单击选中 WebApplication3 -> 对WebApplication3单击鼠标右键,在弹出的菜单中选择:添加 -> 新建项 -> Visual C#/Web/JavaScript 文件 ,名称填 JavaScript.js -> 添加

        然后把JavaScript.js的内容,修改为:

      1 var Global_Config_URL = "/WebService1.asmx/";
      2 var Global_Counter = 0;
      3 
      4 function Output( arg_msg )
      5 {
      6     arg_msg = arg_msg.replace(/\\r\\n/g, "\r\n");
      7     Global_Counter++;
      8     $("#WebUI_Output").text("【" + Global_Counter.toString() + "】 " + arg_msg);
      9 }
     10 
     11 function OutputError(arg_errorMsg)
     12 {
     13     Output("遇到错误:" + arg_errorMsg);
     14 }
     15 
     16 function Event__Test1_NoArg_NoReturn()
     17 {
     18     var actionName = "Test1_NoArg_NoReturn";
     19     var options =
     20     {
     21         type: "POST",
     22         url: Global_Config_URL + actionName,
     23         contentType: "application/json; charset=utf-8",
     24         error: function (jqXHR, errorType, errorMsg)
     25         {
     26             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
     27         },
     28         success: function (result, textArgs, jqXHRArg)
     29         {
     30             Output("调用成功");
     31         }
     32     }
     33     $.ajax(options)
     34 }
     35 
     36 function Event__Test2_NoArg_ReturnS1()
     37 {
     38     var actionName = "Test2_NoArg_ReturnS1";
     39     var options =
     40     {
     41         type: "POST",
     42         url: Global_Config_URL + actionName,
     43         contentType: "application/json; charset=utf-8",
     44         error: function (jqXHR, errorType, errorMsg)
     45         {
     46             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
     47         },
     48         success: function (result, textArgs, jqXHRArg)
     49         {
     50             Output("返回随机Int值:" + result.d);
     51         }
     52     }
     53     $.ajax(options)
     54 }
     55 
     56 function Event__Test3_ArgS1_ReturnSN()
     57 {
     58     var actionName = "Test3_ArgS1_ReturnSN";
     59     var arg_firstNumber = parseInt(Math.random() * 2100000000);
     60     var arg_dataMode = "{ arg_firstNumber: " + arg_firstNumber.toString() + " }";
     61     var options =
     62     {
     63         type: "POST",
     64         url: Global_Config_URL + actionName,
     65         contentType: "application/json; charset=utf-8",
     66         dataType: "json",
     67         data: arg_dataMode,
     68         error: function (jqXHR, errorType, errorMsg)
     69         {
     70             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
     71         },
     72         success: function (result, textArgs, jqXHRArg)
     73         {
     74             Output("返回Int随机数组:" + result.d);
     75         }
     76     }
     77     $.ajax(options)
     78 }
     79 
     80 function Event__Test4_ArgSN_ReturnC1()
     81 {
     82     var actionName = "Test4_ArgSN_ReturnC1";
     83     var arg_randomNumberArray = [];
     84     var arg_randomNumberArray_Length = 5;
     85     for (var i = 0; i < arg_randomNumberArray_Length; i++)
     86     {
     87         
     88         arg_randomNumberArray.push(parseInt(Math.random() * 2100000000));
     89     }
     90     var arg_dataMode = "";
     91     for (var i = 0; i < arg_randomNumberArray_Length; i++) 
     92     {
     93         if( i == 0 )
     94         {
     95             arg_dataMode += "{ arg_intValueArray : [ ";
     96         }
     97         arg_dataMode += arg_randomNumberArray[i].toString();
     98         if ( i != arg_randomNumberArray_Length - 1 ) 
     99         {
    100             arg_dataMode += ", ";
    101         }
    102         else
    103         {
    104             arg_dataMode += " ] }";
    105         }
    106     }
    107     var options =
    108     {
    109         type: "POST",
    110         url: Global_Config_URL + actionName,
    111         contentType: "application/json; charset=utf-8",
    112         dataType: "json",
    113         data: arg_dataMode,
    114         error: function (jqXHR, errorType, errorMsg)
    115         {
    116             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    117         },
    118         success: function (result, textArgs, jqXHRArg)
    119         {
    120             var debugMode_Result = result.d;//在这里下断点,来查看返回值。
    121             Output("返回Class_C:具体数据请在JavaScript.js里通过Debug查看。");
    122         }
    123     }
    124     $.ajax(options)
    125 }
    126 
    127 function Event__Test5_ArgC1_ReturnCN()
    128 {
    129     var actionName = "Test5_ArgC1_ReturnCN";
    130     var arg_dataMode = "{ arg_value : { ID : 199, Name : 'Name 199', IntArray : [ 2, 4, 8, 256, 1024 ], StringArray : [ 'StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:256', 'StringMode:1024' ] } }";
    131     var options =
    132     {
    133         type: "POST",
    134         url: Global_Config_URL + actionName,
    135         contentType: "application/json; charset=utf-8",
    136         dataType: "json",
    137         data: arg_dataMode,
    138         error: function (jqXHR, errorType, errorMsg)
    139         {
    140             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    141         },
    142         success: function (result, textArgs, jqXHRArg)
    143         {
    144             var debugMode_Result = result.d;//在这里下断点,来查看返回值。
    145             Output("返回Class_C[]:具体数据请在JavaScript.js里通过Debug查看。");
    146         }
    147     }
    148     $.ajax(options)
    149 }
    150 
    151 function Event__Test6_ArgCN_ReturnX1()
    152 {
    153     var actionName = "Test6_ArgCN_ReturnX1";
    154     var arg_dataMode = "";
    155     var arg_arrayLength = 5;
    156     for (var i = 0; i < arg_arrayLength; i++)
    157     {
    158         if (i == 0)
    159         {
    160             arg_dataMode += "{ arg_array : [ ";
    161         }
    162         var currentDataMode = "{ ID : " + (i+1).toString() + ", Name : 'Name " + (i+1).toString() + "', IntArray : [ 2, 4, 8, 256, 1024 ], StringArray : [ 'StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:256', 'StringMode:1024' ] }";
    163         arg_dataMode += currentDataMode;
    164         if (i != arg_arrayLength - 1)
    165         {
    166             arg_dataMode += ", ";
    167         }
    168         else
    169         {
    170             arg_dataMode += " ] }";
    171         }
    172     }
    173     var options =
    174     {
    175         type: "POST",
    176         url: Global_Config_URL + actionName,
    177         contentType: "application/json; charset=utf-8",
    178         dataType: "json",
    179         data: arg_dataMode,
    180         error: function (jqXHR, errorType, errorMsg)
    181         {
    182             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    183         },
    184         success: function (result, textArgs, jqXHRArg)
    185         {
    186             var debugMode_Result = result.d;//在这里下断点,来查看返回值。
    187             Output("返回Class_X:具体数据请在JavaScript.js里通过Debug查看。");
    188         }
    189     }
    190     $.ajax(options)
    191 }
    192 
    193 function Event__Test7_ArgX1_ReturnXN()
    194 {
    195     var actionName = "Test7_ArgX1_ReturnXN";
    196     var arg_dataMode = "{ arg_value : { ID : 399, Name : 'Name : 399', IntArray : [ 2, 4, 8, 128, 256 ], StringArray : [ 'StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:128', 'StringMode:256' ] } }";
    197     var options =
    198     {
    199         type: "POST",
    200         url: Global_Config_URL + actionName,
    201         contentType: "application/json; charset=utf-8",
    202         dataType: "json",
    203         data: arg_dataMode,
    204         error: function (jqXHR, errorType, errorMsg)
    205         {
    206             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    207         },
    208         success: function (result, textArgs, jqXHRArg)
    209         {
    210             var debugMode_Result = result.d;//在这里下断点,来查看返回值。
    211             Output("返回Class_X[]:具体数据请在JavaScript.js里通过Debug查看。");
    212         }
    213     }
    214     $.ajax(options)
    215 }
    216 
    217 function Event__Test8_ArgXN_NoReturn()
    218 {
    219     var actionName = "Test8_ArgXN_NoReturn";
    220     var arg_dataMode = "";
    221     var arg_arrayLength = 5;
    222     for (var i = 0; i < arg_arrayLength; i++)
    223     {
    224         if (i == 0)
    225         {
    226             arg_dataMode += "{ arg_array : [ ";
    227         }
    228         var currentDataMode = "{ ID: " + (i + 1).toString() + ", Name: 'Name : " + (i + 1).toString() + "', IntArray: [2, 4, 8, 128, 256], StringArray: ['StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:128', 'StringMode:256'] }";
    229         arg_dataMode += currentDataMode;
    230         if (i != arg_arrayLength - 1)
    231         {
    232             arg_dataMode += ", ";
    233         }
    234         else
    235         {
    236             arg_dataMode += " ] }";
    237         }
    238     }
    239     var options =
    240     {
    241         type: "POST",
    242         url: Global_Config_URL + actionName,
    243         contentType: "application/json; charset=utf-8",
    244         dataType: "json",
    245         data: arg_dataMode,
    246         error: function (jqXHR, errorType, errorMsg)
    247         {
    248             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    249         },
    250         success: function (result, textArgs, jqXHRArg)
    251         {
    252             Output("调用成功");
    253         }
    254     }
    255     $.ajax(options)
    256 }
    257 
    258 function Event__Test9_ArgMixAll_NoReturn()
    259 {
    260     var actionName = "Test9_ArgMixAll_NoReturn";
    261     var arg_dataMode = "";
    262     //1.arg: intValue
    263     var arg_intValue = "arg_intValue : 12345";
    264     //2.arg: stringValue
    265     var arg_stringValue = "arg_stringValue : 'StringMode:12345'";
    266     //3.arg: Class_C C1Value
    267     var arg_C1Value = "arg_C1Value : { ID : 900, Name : 'Name : 900', IntArray : [ 1, 2, 3, 4, 5 ], StringArray : [ 'StringMode:1', 'StringMode:2', 'StringMode:3', 'StringMode:4', 'StringMode:5' ] }";
    268     //4.arg: Class_C[] CNValue
    269     var arg_CNValue = "";
    270     var arg_CNValueLength = 5;
    271     for (var i = 0; i < arg_CNValueLength; i++)
    272     {
    273         if (i == 0)
    274         {
    275             arg_CNValue += "arg_CNValue : [ ";
    276         }
    277         var currentC1Value = "{ ID : " + (i + 1).toString() + ", Name : 'Name : " + (i + 1).toString() + "', IntArray : [ 4, 5, 6, 7, 8 ], StringArray : [ 'StringMode:4', 'StringMode:5', 'StringMode:6', 'StringMode:7', 'StringMode:8' ] }";
    278         arg_CNValue += currentC1Value;
    279         if (i != arg_CNValueLength - 1)
    280         {
    281             arg_CNValue += ", ";
    282         }
    283         else
    284         {
    285             arg_CNValue += " ]";
    286         }
    287     }
    288     //5.arg: Class_X X1Value
    289     var arg_X1Value = "arg_X1Value : { ID : 399, Name : 'Name : 399', IntArray : [ 2, 4, 8, 128, 256 ], StringArray : [ 'StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:128', 'StringMode:256' ] }";
    290     //6.arg: Class_X[] XNValue
    291     var arg_XNValue = "";
    292     var arg_XNValueLength = 5;
    293     for (var i = 0; i < arg_XNValueLength; i++)
    294     {
    295         if (i == 0)
    296         {
    297             arg_XNValue += "arg_XNValue : [ ";
    298         }
    299         var currentX1Value = "{ ID: " + (i + 1).toString() + ", Name: 'Name : " + (i + 1).toString() + "', IntArray: [2, 4, 8, 128, 256], StringArray: ['StringMode:2', 'StringMode:4', 'StringMode:8', 'StringMode:128', 'StringMode:256'] }";
    300         arg_XNValue += currentX1Value;
    301         if (i != arg_XNValueLength - 1)
    302         {
    303             arg_XNValue += ", ";
    304         }
    305         else
    306         {
    307             arg_XNValue += " ]";
    308         }
    309     }
    310     //Mix ALL
    311     arg_dataMode += "{ " + arg_intValue + ", " + arg_stringValue + ", " + arg_C1Value + ", " + arg_CNValue + ", " + arg_X1Value + ", " + arg_XNValue + " }";
    312     var options =
    313     {
    314         type: "POST",
    315         url: Global_Config_URL + actionName,
    316         contentType: "application/json; charset=utf-8",
    317         dataType: "json",
    318         data: arg_dataMode,
    319         error: function (jqXHR, errorType, errorMsg)
    320         {
    321             OutputError(errorMsg + ",详细信息:" + jqXHR.responseText);
    322         },
    323         success: function (result, textArgs, jqXHRArg)
    324         {
    325             Output("调用成功");
    326         }
    327     }
    328     $.ajax(options)
    329 }

    7.修改Web配置文件

        由于测试方法中,有部分方法,从服务端返回到客户端的数据量比较大,因此需要修改一下默认Web配置文件,否则会报错说超过最大长度。

        解决方案资源管理器 -> 鼠标左键双击 Web.config,然后把Web.config的内容,修改为:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 
     3 <!--
     4   有关如何配置 ASP.NET 应用程序的详细信息,请访问
     5   http://go.microsoft.com/fwlink/?LinkId=169433
     6   -->
     7 
     8 <configuration>
     9     <system.web>
    10       <compilation debug="true" targetFramework="4.0" />
    11     </system.web>
    12     <system.web.extensions>
    13         <scripting>
    14             <webServices>
    15                 <jsonSerialization maxJsonLength="2100000000" />
    16             </webServices>
    17         </scripting>
    18     </system.web.extensions>
    19 </configuration>

    8.现在,就可以在VS2012里进行调试了。

        解决方案资源管理器 -> 鼠标左键单击选中 HtmlPage1.html,然后按F5开始调试。有些功能,需要在WebService1.asmx或JavaScript.js里的对应位置,下断点来查看数据信息,具体信息请看提示。

  • 相关阅读:
    闲置安卓设备搭建Linux服务器实现外网访问
    Flume笔记
    动态规划算法助记
    Hexo 添加Live2D看板娘
    Oracle 助记
    搭建Discuz论坛
    逆向工程(助记)
    PL/SQL Developer连接本地Oracle 11g 64位数据库
    NSOperation的基础
    GCD基础
  • 原文地址:https://www.cnblogs.com/xxxteam/p/3095085.html
Copyright © 2020-2023  润新知