$.post
调用webservice,通过Response来返回数据。
(一)Hello
·ws
[WebMethod]
public void HelloWorld()
{
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.Write("Hello world!");
}
public void HelloWorld()
{
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.Write("Hello world!");
}
·
function ajaxVoidHello() {
$.post(
"post_2.asmx/HelloWorld",
function(data) {
var jsonString = data.text;
$("#divmessage").html(data);
},
"json"
);
}
$.post(
"post_2.asmx/HelloWorld",
function(data) {
var jsonString = data.text;
$("#divmessage").html(data);
},
"json"
);
}
客户端得到的数据类型为string类型。
(二)得到客户实体
·ws
[WebMethod]
public void GetCustomer()
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/json";
Response.Write(strJson);
}
public void GetCustomer()
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/json";
Response.Write(strJson);
}
这里ContentType很重要,这里要保留,即使空值也可以。
·
function ajaxGetCustomer() {
$.post(
"post_2.asmx/GetCustomer",
function(data) {
var jsonString = data;
var jsonObject = $.jsonToObject(jsonString);
var tt = '';
$.each(jsonObject, function(k, v) {
tt += k + ":" + v + "<br/>";
});
$("#divmessage").html(tt);
},
"json"
);}
$.post(
"post_2.asmx/GetCustomer",
function(data) {
var jsonString = data;
var jsonObject = $.jsonToObject(jsonString);
var tt = '';
$.each(jsonObject, function(k, v) {
tt += k + ":" + v + "<br/>";
});
$("#divmessage").html(tt);
},
"json"
);}
请求json数据,返回的是一个字符串,就是json字串,然后处理。
(三)得到客户集
·ws
[WebMethod]
public void GetCustomersList()
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
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);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/json";
Response.Write(strJson);
}
public void GetCustomersList()
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
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);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/json";
Response.Write(strJson);
}
·
function ajaxGetCustomerList() {
$.post(
"post_2.asmx/GetCustomersList",
function(data) {
alert(data);
var jsonString = data;
var jsonObject = $.jsonToObject(jsonString);
var tt = '';
$.each(jsonObject, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
$("#divmessage").html(tt);
},
"json"
);}
$.post(
"post_2.asmx/GetCustomersList",
function(data) {
alert(data);
var jsonString = data;
var jsonObject = $.jsonToObject(jsonString);
var tt = '';
$.each(jsonObject, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
$("#divmessage").html(tt);
},
"json"
);}
这些很容易理解了,返回的是json字串。处理字串就可以了。
(四)带参数的
·ws
[WebMethod]
public void GetCustomersListWithPara(int iUnid)
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
Customer customer2 = new Customer
{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" };
List<Customer> _list = new List<Customer>();
_list.Add(customer);
_list.Add(customer2);
var q = _list.Where(p => p.Unid == iUnid);
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(q);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "";
Response.Write(strJson);
}
public void GetCustomersListWithPara(int iUnid)
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
Customer customer2 = new Customer
{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" };
List<Customer> _list = new List<Customer>();
_list.Add(customer);
_list.Add(customer2);
var q = _list.Where(p => p.Unid == iUnid);
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(q);
HttpResponse Response = HttpContext.Current.Response;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "";
Response.Write(strJson);
}
·
function ajaxGetCustomerListWithPara() {
$.post(
"post_2.asmx/GetCustomersListWithPara",
{ iUnid: 1 },
function(data) {
var tt = '';
$.each(data, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
})
});
$("#divmessage").html(tt);
},
"json"
);}
$.post(
"post_2.asmx/GetCustomersListWithPara",
{ iUnid: 1 },
function(data) {
var tt = '';
$.each(data, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
})
});
$("#divmessage").html(tt);
},
"json"
);}
这里返回的是[object,object]类型。
服务端的ContentType可以设置为空。