jQuery之调用WebService

前台:

<script type="text/javascript">
    $(function () {
        $("#btn1").click(function () {           //不带参数
            $.ajax({
                type: "POST",
                url: "WebService1.asmx/HelloWorld",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (json) { alert(json.d); },
                error: function (error) {
                    alert("调用出错" + error.responseText);
                }
            });
        });
        $("#btn2").click(function () {           //带参数
            $.ajax({
                type: "POST",
                url: "WebService1.asmx/ReturnString",
                data: "{s:'" + $("#txt").val() + "'}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (json) { alert(json.d); },
                error: function (error) {
                    alert("调用出错" + error.responseText);
                }
            });
        });
        $("#btn3").click(function () {           //对象
            $.ajax({
                type: "POST",
                url: "WebService1.asmx/ReturnDomain",
                data: "{}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (json) { alert(json.d.Name + json.d.Age); },
                error: function (error) {
                    alert("调用出错" + error.responseText);
                }
            });
        });
        $("#btn4").click(function () {           //对象集合
            $.ajax({
                type: "POST",
                url: "WebService1.asmx/ReturnList",
                data: "{}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (json) {
                    $.each(json.d, function (key, value) {
                        alert(value.Name + value.Age);
                    });
                },
                error: function (error) {
                    alert("调用出错" + error.responseText);
                }
            });
        });
        //返回DataTable(XML)
        $('#btn5').click(function () {
            $.ajax({
                type: "POST",
                url: "WebService1.asmx/ReturnXML",
                data: "{}",
                dataType: 'xml'//返回的类型为XML
                success: function (result) {
                    try {
                        $(result).find("xmltest").each(function () {
                            alert($(this).find("Name").text() + " " + $(this).find("Age").text());
                        });
                    }
                    catch (e) {
                        alert(e);
                        return;
                    }
                },
                error: function (result, status) { //如果没有上面的捕获出错会执行这里的回调函数
                    if (status == 'error') {
                        alert(status);
                    }
                }
            });
        });
    });

</script>

<div>
    <p>
        <input type="button" id="btn1" value="不带参" />
    </p>
    <p>
        <input type="button" id="btn2" value="带参" />
        <input type="text" id="txt" /></p>
    <p>
        <input type="button" id="btn3" value="对象" />
    </p>
    <p>
        <input type="button" id="btn4" value="集合" />
    </p>
    <p>
        <input type="button" id="btn5" value="XML" />
    </p>

</div> 

后台WebService:

/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{

    public class User
    {
        public string Name
        {
            get;
            set;
        }
        public int Age
        {
            get;
            set;
        }
    }
    /// <summary>
    
/// 返回字符串
    
/// </summary>
    
/// <returns></returns>
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
    /// <summary>
    
/// 带参数
    
/// </summary>
    
/// <param name="s"></param>
    
/// <returns></returns>
    [WebMethod]
    public string ReturnString(string s)
    {
        return s;
    }
    /// <summary>
    
/// 返回对象
    
/// </summary>
    
/// <returns></returns>
    [WebMethod]
    public User ReturnDomain()
    {
        return new User { Name = "王斌", Age = 11 };
    }
    /// <summary>
    
/// 返回集合对象
    
/// </summary>
    
/// <returns></returns>
    [WebMethod]
    public List<User> ReturnList()
    {
        return new List<User> {
                                new User{Name="王斌",Age=23},
                                new User{Name="李攀",Age=11}
        };
    }
    /// <summary>
    
/// 返回XML
    
/// </summary>
    
/// <returns></returns>
    [WebMethod]
    public System.Data.DataTable ReturnXML()
    {
        System.Data.DataTable dt = new System.Data.DataTable();
        dt.Columns.Add("Name");
        dt.Columns.Add("Age"typeof(int));
        DataRow dr = dt.NewRow();
        dr[0] = "wangbin";
        dr[1] = 11;
        dt.Rows.Add(dr);
        DataRow dr1 = dt.NewRow();
        dr1[0] = "lipan";
        dr1[1] = 22;
        dt.Rows.Add(dr1);
        dt.TableName = "xmltest";
        return dt;
    }

} 


转载:http://blog.csdn.net/thebesttome/article/details/6921407

posted @ 2013-01-25 16:41  飛雲若雪  阅读(779)  评论(0编辑  收藏  举报