准备工作

·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协议访问。

posted on 2009-12-29 17:29  梅桦  阅读(58975)  评论(0编辑  收藏  举报