通路ws,而web方法再是字元串傳回類型。這次通過response來響應請求。所處環境:.net3.5,而webservice 不再添加修飾标簽:[System.Web.Script.Services.ScriptService]
(一)Hello
·ws
[WebMethod]
public void HelloWorld()
{
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/json";
Response.Write("Hello World!");
}
·ajax post
function ajax_wsHell() {
$.ajax({
type: "post",
contentType: "application/json",
url: "ajax_2.asmx/HelloWorld",
success: function(data) {
alert(data);
}
});
}
Hello World!
·對于純字串來說(不是json字串),響應的資料是真的字串。
(二)Customer
public void GetCustomer()
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
Response.Write(strJson);
function ajax_wsCustomer() {
url: "ajax_2.asmx/GetCustomer",
var jsonObject = $.jsonToObject(data);
var tt = '';
$.each(jsonObject, function(k, v) {
tt += k + ":" + v + "<br/>";
});
$("#divmessage").html(tt);
{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}
對于json字串來說,它傳回的是一個純的json字串,不再是以d為key的k/v對。而對于json字串來說,轉換到json對象很容易(. jsonToObject()方法,我以前的随筆中有介紹)。
(三)customer list
public void GetCustomerList()
Customer customer2 = new Customer
{ Unid = 2, CustomerName = "吳用", Memo = "天機星", Other = "智多星" };
List<Customer> _list = new List<Customer>();
_list.Add(customer);
_list.Add(customer2);
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);
function ajax_wsCustomerList() {
url: "ajax_2.asmx/GetCustomerList",
$.each(jsonObject, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
[
{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"},
{"Unid":2,"CustomerName":"吳用","Memo":"天機星","Other":"智多星"}
]
可以看出,得到的也是純json字串。
(四)帶參數
public void GetCustomerListWithPara(int iUnid)
var cus = from q in _list
where q.Unid == iUnid
select q;
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus);
function ajax_wsCustomerListWithPara() {
url: "ajax_2.asmx/GetCustomerListWithPara",
data: ({ iUnid: 1 }),
dataType: "json",
$.each(data, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
[{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}]
這裡又傳回了一個json對象。而不是一個json串。而且,沒有給用戶端ajax請求添加 contentType參數。
綜述:
·對于請求由Response響應的json字串值,有很大的便利性,但對于帶參數的請求,傳回的是一個json對象,這可以直接處理。
·而web服務類不必添加修飾标簽,這在.net2.0中應該也是可以的,是普遍的。是以,在通過web服務實作ajax時,可以采用這一通用方法。
·.ajax()方法的參數要合适,否則會不出結果,其根源在于jquery類庫中對function :ajax的定義
·ajax方法是.getJSON(),.get(),.post()的根。而這三種方法是做為.ajax方法的一種特殊情況集來表達的。
部落格園大道至簡
<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>
轉載請注明:部落格園