JQuery Ajax WebService传递参数

Asp.net中利用JQuery实现Ajax时,在服务器端可以使用aspx,ashx,以及WebService等方式。最近研究了一下WebService方式,jQuery Ajax 方法调用 Asp.Net WebService 的详细例子这篇帖子给出了很详细的例子,不过没有给出详细解释。其中有几个细节问题开始没注意,费老劲才调通:

1)客户端data数据中的key字段名称必须和服务器端方法参数严格一致。

如客户端:

 //有参数调用
        $(document).ready(function () {
            $("#btn2").click(function () {
                $.ajax({
                    type: "POST",
                    contentType: "application/json",
                    url: "WebService.asmx/GetWish",
                    data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}",
                    dataType: 'json',
                    success: function (result) {
                        $('#dictionary').append(result.d);
                    }
                });
            });
        });


服务器端的GetWish函数参数必须写成value1,value2,value3,value4:

    [WebMethod]
    public string GetWish(string value1, string value2, string value3, int value4)
    {
        return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4);
    }

2)客户端传递对象到服务器端的方法:

客户端代码:

 //传入对象
        $(function () {
            $("#btn6").click(function () {
                obj = new Object();
                obj.ID = "1";
                obj.Value = "aaa";
                //'{"obj":{"ID":"1",Value:"Horse"}}'
                var d = '{"obj":' + JSON.stringify(obj) + '}';
                $.ajax({
                    type: "POST",   //访问WebService使用Post方式请求
                    contentType: "application/json", //WebService 会返回Json类型
                    url: "WebService.asmx/ParmsObject", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
                    data: d,         //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到       
                    dataType: 'json',
                    success: function (result) {
                        alert(result.d);
                    },
                    error: function (result) {
                        alert("fail");
                    }
                });
            });

        });

服务器端代码:

    [WebMethod]
    public string ParmsObject(Class1 obj)
    {

        return obj.ID + ":" + obj.Value;
    }

调试环境:VS2010+jquery-1.3.2.min.js

参考资料:

Jquery ajax传递复杂参数给WebService的实现代码

jQuery Ajax 方法调用 Asp.Net WebService 的详细例子

你可能感兴趣的:(JQuery)