日期:2014-05-16  浏览次数:20819 次

Ajax不能传数据给asmx中的类 - Web 开发 / Ajax
Ajax代码  
 
JScript code
//返回DataSet(XML)
        $(document).ready(function() {
            $('#btn5').click(function() {
                $.ajax({
                    type: "POST",
                    url: "WebService1.asmx/GetDataSet",
                    data: "{i:1}",
                    dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
                    success: function(result) {
                        //演示一下捕获
                        try {
                            $(result).find("Table1").each(function() {
                                $('#dictionary').prepend("<table><tr>");
                                $('#dictionary').append("<td>" + $(this).find("ID").text() + "</td><td>" + $(this).find("Value").text() + "</td>");
                                $('#dictionary').append("</tr><table>");
                            });
                        }
                        catch (e) {
                            alert(e);
                            return;
                        }
                    },
                    error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
                        if (status == 'error') {
                            alert(status);
                        }
                    }
                });
            });
        });


asmx中类的代码
 
C# code
  [WebMethod]
        public DataSet GetDataSet(int i)
        {
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", Type.GetType("System.String"));
            dt.Columns.Add("Value", Type.GetType("System.String"));
            DataRow dr = dt.NewRow();
            dr["ID"] = "1";
            dr["Value"] = "新年快乐";
            dt.Rows.Add(dr);
            if (i == 1)
            {
                dr = dt.NewRow();
                dr["ID"] = "2";
                dr["Value"] = "万事如意";
                dt.Rows.Add(dr);
            }
            ds.Tables.Add(dt);
            return ds;
        }

这是为什么?求个解决方法,谢谢。


------解决方案--------------------
soap协议的格式是规定的
你可以查一下 xmlhttp调用 webservice,基本上都是拼接soap头这么做的,返回处理也很麻烦。