最近刚学习了一个JQuery调用Web Service的方法,感觉不错,但是不知道为什么调用一个发布好的Web Service就是不行,继续学习中~~~ JS代码如下: $(document).ready(function() { $("#btnTest").addClass("AddBtnImgCss AddAlignCenter"); $("#btnTest").text("Test"); $("#btnTest").click(function() { try { $.ajax({ type: "POST", contentType: "application/json", url: "WebService1.asmx/HelloWorld", dataType: "json", success: function(msg) { alert(msg.d); } }); } catch (ex) { alert(ex); } }); $("#btnTestPramater").addClass("AddBtnImgCss AddAlignCenter"); $("#btnTestPramater").text("Hello"); $("#btnTestPramater").click(function() { var test = $("#TextUserName").val(); if (test != "") { try { $.ajax({ type: "POST", contentType: "application/json", url: "WebService1.asmx/GetStr", dataType: "json", data: "{str:'" + test + "'}", //参数名:参数值 success: function(msg) { alert(msg.d); } }); } catch (ex) { alert(ex); } } else { alert("请输入姓名"); } }); $("#btnArray").addClass("AddBtnImgCss AddAlignCenter"); $("#btnArray").text("Array"); //返回泛型列表 $("#btnArray").click(function() { var test = $("#TextArrayNum").val(); if (test != "") { if (test < 20) $.ajax({ type: "POST", contentType: "application/json", url: "WebService1.asmx/CreateArray", data: "{i:" + test + "}", //参数名:参数值 dataType: 'json', success: function(result) { var re = result.d; alert(re.join('|')); } }); else alert("数组个数不能大于20"); } else alert("请输入数组个数"); }); $("#btnPerson").addClass("AddBtnImgCss AddAlignCenter"); $("#btnPerson").text("Person"); //返回复杂类型 $("#btnPerson").click(function() { var userName = $("#TextUserName").val(); var age = $("#TextAge").val(); if (userName != "" && age != "") $.ajax({ type: "POST", contentType: "application/json", url: "WebService1.asmx/GetPerson", data: "{name:'" + userName + "',age:" + age + "}", //参数名:参数值 dataType: 'json', success: function(result) { var person = result.d; var showText = []; for (var p in person) { showText.push(p + ":" + person[p]); } alert(showText.join("/r/n")); } }); else alert("请输入姓名和年龄"); }); }); aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestValidate.aspx.cs" Inherits="WebTest.TestValidate" %> <!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 runat="server"> <title></title> <link href="../CSS/TestJQuery/TestJQuery.css" mce_href="CSS/TestJQuery/TestJQuery.css" type="text/css" rel="Stylesheet" /> <mce:script type="text/javascript" src="../Script/jquery-1.5.2.js" mce_src="Script/jquery-1.5.2.js"></mce:script> <mce:script type="text/javascript" src="../Script/JScript.js" mce_src="Script/JScript.js"></mce:script> </head> <body> <form id="form1" runat="server"> <table> <tr> <td> 请输入要生成的个数: </td> <td> <input type="text" id="TextArrayNum" /> </td> <td> <div id="btnArray"> </div> </td> </tr> <tr> <td> 请输入姓名: </td> <td> <input type="text" id="TextUserName" /> </td> <td> <div id="btnTestPramater"> </div> </td> </tr> <tr> <td> 请输入年龄: </td> <td> <input type="text" id="TextAge" /> </td> <td> <div id="btnPerson"> </div> </td> </tr> </table> </form> </body> </html> Web Service代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebTest { /// <summary> /// WebService1 的摘要说明 /// </summary> [System.Web.Script.Services.ScriptService()]//令WebService成功传入Json参数,并以Json形式返回结果 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //[System.Web.Script.Services.GenerateScriptType(typeof(Person))]//不是必要,但推荐添加(如果Person里面再嵌套另一个复杂类型,则必要声明) [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string GetStr(string str) { return "你输入的是:" + str; } [WebMethod] public List<int> CreateArray(int i) { List<int> list = new List<int>(); while (i > 0) { list.Add(i--); } return list; } [WebMethod] public Person GetPerson(string name, int age) { return new Person() { Name = name, Age = age }; } } public class Person { public string Name { get; set; } public int Age { get; set; } } }