$.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! " );
}
·ajax post
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很重要,这里要保留,即使空值也可以。
·ajax post
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);
}
·ajax post
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);
}
·ajax post
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可以设置为空。