如果想用ajax进行访问 首先在web.config里进行设置
添加在
<webServices>
<protocols> <add name= "HttpPost" /> <add name= "HttpGet" /> </protocols> </webServices><system.web>节点之下
这样就是可以通过url进行访问了 不然就会报错
然后直接亮代码 代码也是网上找到的 如有雷同,请联系本人
[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 { ////// 无参数 /// ///[WebMethod] public string HelloWorld() { return "Hello World "; } /// /// 带参数 /// /// /// /// /// ///[WebMethod] public string GetWish(string value1, string value2, string value3, int value4) { return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4); } /// /// 返回集合 /// /// ///[WebMethod] public List GetArray(int i) { List list = new List (); while (i >= 0) { list.Add(i--); } return list; } /// /// 返回一个复合类型 /// ///[WebMethod] public Class1 GetClass() { return new Class1 { ID = "1", Value = "牛年大吉" }; } /// /// 返回XML /// ///[WebMethod] public DataSet GetDataSet() { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("ID", Type.GetType("System.String")); dt.Columns.Add("Value", Type.GetType("System.String")); DataRow dr = dt.NewRow(); dr["ID"] = "1"; dr["Value"] = "新年快乐"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["ID"] = "2"; dr["Value"] = "万事如意"; dt.Rows.Add(dr); ds.Tables.Add(dt); return ds; } } //自定义的类,只有两个属性 public class Class1 { public string ID { get; set; } public string Value { get; set; } }
然后是ajax的代码
然后就是这5个ajax得到的响应
是不是很奇怪为什么json里都有个d 我也很奇怪估计是服务端把其他格式解析成json的时候自己添加的
还有一个问题 ajax的代码 contentType: "application/json", //WebService 会返回Json类型
dataType: 'json' 这2者的区别是啥 如果知道请告诉我下