准备工作
·Customer类
public class Customer
{
public int Unid { get; set; }
public string CustomerName { get; set; }
public string Memo { get; set; }
public string Other { get; set; }
}
·服务端处理(Json_1.ashx)
Customer customer = new Customer { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
context.Response.Write(strJson);
jQuery.get( url, [data], [callback], [type] )
能过http get请求数据。其中的callback是$.ajax的一种缩略应用,指在成功加载数据后调用。
(一)ashx文件
Get请求得到json数据
·Ashx文件不再提供
·js
function GetCustomer_Ashx() {
$.get(
"webdata/get_1.ashx",
{},
function(data) {
var tt = "";
$.each(data, function(k, v) {
tt += k + ":" + v + "<br/>";
})
$("#divmessage").html(tt);
},
"json"
);
}
其中,参数如果没有,那么也要保留空参数列表;数据格式设置为json
(二)ashx文件,集合
·ashx文件不再提供,请见我的博客的其它随笔
·js
function GetCustomerList() {
$.get(
"webdata/get_1.ashx",
{},
function(data) {
var tt = "";
$.each(data, function(k, v) {
$.each(v, function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
$("#divmessage").html(tt);
},
"json"
);
}
其中,没有参数,参数提供部分可以为空,也可以提供空列表;数据格式可以省略,写json也行,其它的几个选项也行。
(三)请求文本文件
这次得到文本内容,不得到json对象。
function GetCustomer_txt() {
$.get(
"webdata/get_1.txt",
function(data) {
$("#divmessage").html(data);
},
"text"
);
}
这里的数据类型,可以省略。
(四)请求WebService
http get方式请求web服务,默认get关闭。要手动启动。
可以在config文件中添加get支持:
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
[WebMethod]
public string GetCustomer()
{
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
return strJson;
}
ScriptMethod 属性标签用于指定用于调用方法的 HTTP 谓词以及响应的格式。此属性用于指定可从客户端脚本调用的方法的信息。使用此属性可以指定可用于调用方法的 HTTP 谓词(GET 或 POST)。它还使您可以指定是要使用 JavaScript 对象符号 (JSON) 还是 XML 对响应进行格式设置。
·UseHttpGet
指定是否要通过使用 HTTP GET 命令调用方法。默认值为 false。
·ResponseFormat
指定将响应序列化为 JSON 还是 XML。默认值为 Json。当方法返回 XmlDocument 或 XmlElement 对象时,ResponseFormat 属性可用于将 XML 指定为返回类型。
·XmlSerializeString
指定是否将所有返回类型(包括字符串类型)都序列化为 XML。将响应序列化为 JSON 时,将忽略 XmlSerializeString 属性的值。
如果web服务方法不修饰这个标签,那默认就序列化为json对象。
function GetCustomer_Webservice() {
$.get(
"get_1.asmx/GetCustomer",
function(data) {
var jsonObject = $.jsonToObject(data.text);
var tt = '';
$.each(jsonObject, function(k, v) {
tt += k + ":" + v + "<br/>";
});
$("#divmessage").html(tt);
},
"json"
);}
这种例子就举到这个为止。在ajax get请求web服务时,注意开通get协议访问。