这是JQuery的脚本。 
<script type="text/javascript">
        $('#ok').click(function() { 
            $.post("checkform.aspx", 
                {username:$("#txt_username").val(), password:$("#txt_password").val()}, 
                function showResult(data){$("#result").html(data.id+"-"+data.value); },
                "jsno"
             );
        }); 
</script>服务器端的一个方法返回一个对象data,里面有id和value两个值,我怎么读出来的结果为: undefined-undefined如果我返回的是字符串或者其他单一的值,都可以正常读出来,就是对象不能读。请牛人给解答?
小弟刚看JQuery,请大家多多指教!

解决方案 »

  1.   

    这个没办法读的,后台的对象与js中的对象是有差别的
    传到js中,js根本不认识建议组装起来,比如组装成data.id+"-"+data.value
    然后到了js里再解析出来
    var arr = str.split("-");
    var id = arr[0];
    var name = arr[1];
      

  2.   

    已经搞定了,是可以传的,但要符合一定的json格式, 取值的时候得到的是一个数组,利用下标就可以出来了。handler.ashx中
      public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string id = context.Request.Form["id"];
            if (id == "5")
            {
                //Data myData = new Data("111", "dddd", "");
                //context.Response.Write(myData);
                string msg = "[{value:\"HelloWorld!\",value2:\"HelloWorld2!\"},{value:\"HelloWorld!\",value2:\"HelloWorld2!\"}]";
                context.Response.Write(msg);
            }
            else
            {
                context.Response.Write("Error!");
            }
            context.Response.End();    }html中的脚本
     <script type="text/javascript">
                    $("button#getJSon").click(function(){
                $.post("Handler.ashx", 
                { id: "5" },
                function(data){
                  $("div#show").html(data[0].value+data[0].value2+"<br>"+data[1].value+data[1].value2);
                },
                "json");
            });  
        </script>
      

  3.   


    //Post提交数据
                //$.post(url,params,callback)
                $.post("WebService.asmx/GetResult",{"num":no,"start":start,"end":end,"type":type},function(doc){  
                    
                    //alert("请求已经发出");//
                    
                    //each循环读取
                    $(doc).find("TicketModel").each(function(){
                        var count = $(this).find("TicketCount").text();
                        //.Text() 取得所有匹配元素的内容
                        if(count == "0" || count == ""){
                            $("#spTickctCount").text("没有可销售的票");
                            return;
                        }
                        
                        //赋值span,显示
                        $("#spTickctCount").text(count);
                        $("#spUnitPrice").text($(this).find("UnitPrice").text());
                        $("#spStartTime").text($(this).find("StartTime").text());                });
                    //alert("请求已经结束");//
                });
    看看这段代码  ,返回的是 "" ,要返回结果怎么写 ???
      

  4.   

    3楼,你函数加个参数,这个参数就是服务器返回的结果,你在js里处理这个参数就可以了。 function(data){
      $("div#show").html(data[0].value+data[0].value2+"<br>"+data[1].value+data[1].value2);
      },