Asp.NET中利用jQuery實作Ajax時,在伺服器端可以使用aspx,ashx,以及WebService等方式。最近研究了一下WebService方式,jQuery Ajax 方法呼叫 jQuery Ajax方法呼叫 Asp.Net WebService 的詳細實例程式碼這篇貼文給出了很詳細的例子,不過沒有給出詳細解釋。其中有幾個細節問題開始沒注意,費老勁才調通:
1)客戶端data資料中的key欄位名稱必須和伺服器端方法參數嚴格一致。
如客戶端:
//有参数调用 $(document).ready(function () { $("#btn2").click(function () { $.ajax({ type: "POST", contentType: "application/json", url: "WebService.asmx/GetWish", data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}", dataType: 'json', success: function (result) { $('#dictionary').append(result.d); } }); }); });
伺服器端的GetWish函數參數必須寫成value1,value2,value3,value4:
客戶端程式碼:
[WebMethod] public string GetWish(string value1, string value2, string value3, int value4) { return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4); }
伺服器端程式碼:
//传入对象 $(function () { $("#btn6").click(function () { obj = new Object(); obj.ID = "1"; obj.Value = "aaa"; //'{"obj":{"ID":"1",Value:"Horse"}}' var d = '{"obj":' + JSON.stringify(obj) + '}'; $.ajax({ type: "POST", //访问WebService使用Post方式请求 contentType: "application/json", //WebService 会返回Json类型 url: "WebService.asmx/ParmsObject", //调用WebService的地址和方法名称组合 ---- WsURL/方法名 data: d, //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到 dataType: 'json', success: function (result) { alert(result.d); }, error: function (result) { alert("fail"); } }); }); });
除錯環境:VS2010+jquery-1.3.2.min.js
除錯環境:VS2010+jquery-1.3.2.min.js