0

尝试从 asp.net 函数读取 json 数据时出现以下错误,这是图像错误 在此处输入图像描述

这是jQuery代码,

<script type="text/javascript">
    $(document).ready(function () {
        $("#getdata").click(function () {
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetData",                   
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert(data.d);
                    // $("#company").html(data.d);
                      console.log(data);
                },
                error: function (error) {
                    alert(error);
                }
            });
        });
    });
</script>

我做错了什么来得到这个错误。感谢您的任何帮助。从控制台日志中获取此错误,console.log(error) 在此处输入图像描述

4

3 回答 3

1

您看到的原因是data.d表示返回的 JSON 文本响应的对象。当您将一个对象传入alert时,它会显示[object Object]。无论您要寻找什么,都将是data.d. 我会在那条线上放一个断点,看看有哪些属性可用。它将data.d.myProperty包含您尝试使用的实际字符串/HTML。

于 2013-07-05T15:42:26.647 回答
0

最后,我发现了问题所在,我必须在 asp.net 函数之前添加“[WebMethod()]”声明。例如,

    [WebMethod()]
    public static string GetData()
    {

        try
        {
            string strjson;
            string connectionstring = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
            SqlConnection Con = new SqlConnection(connectionstring);
            DataSet DS = new DataSet();
            String CmdText = "Select Compname,compadd1,compadd2,compemail from aas_company where compid=@cmpid";
            SqlCommand cmd = new SqlCommand(CmdText, Con);
            cmd.Parameters.Add("@cmpid", SqlDbType.Int).Value = 22;
            Con.Open();
            SqlDataAdapter DA = new SqlDataAdapter(cmd);
            DA.Fill(DS);
            DataTable dTable = DS.Tables[0];
            strjson = GetJSONString(dTable);
            Con.Close();               
            return strjson;
        }
        catch (Exception ex)
        {
            throw new System.Exception("Error In Get Data" + ex.Message);
        }
    }

这个答案不适合专家,只适合初学者,谢谢。

于 2013-07-05T17:16:37.523 回答
0

不要使用警报!那只会显示这一点。由于您的响应是 Json 对象,请尝试对其进行 JSON.stringify 或使用 console.log 查看数据

于 2013-07-05T15:45:39.290 回答