簡體   English   中英

ajax在asp.net中返回未定義的對象

[英]ajax is returning an undefined object in asp.net

這是C#中的getter方法,它通過查詢獲取用戶輸入的單詞的含義,並將其填充到數據表中,然后用循環填充字符串列表,該循環將包含這些含義,最后將這些含義轉換並返回為json字符串:

             public static string  getmeanings(string word)
         {
    string cs = 
            ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;

                        List<string> stringArr = new List<string>();

    using (SqlConnection con = new SqlConnection(cs))
    {

        con.Open();
        using (SqlDataAdapter rdr = new SqlDataAdapter("SELECT MEANING FROM WORDS T1 , MEANINGS T2 WHERE WORD LIKE N'" + word + "'AND T1.WORD_ID = T2.WORD_ID", con))
        {
            using (DataTable dt = new DataTable())
            {

                rdr.Fill(dt);
                for(int i =1;i< dt.Rows.Count; i++)
                {
                    stringArr.Add(dt.Rows[0][i].ToString());

                }

            }

            string json1 = JsonConvert.SerializeObject( stringArr);
            return json1;

        }
    }
}

這是ajax / jquery代碼:在keyup上,ajax將調用getter方法,成功后,它將更改包含return json對象結果的表

       $(function () {

        $("#text1").keyup( function () {
            var word = $("#text1").val();
            $.ajax({
                type: "GET",
                url: "toshow.aspx/getmeanings",
                data: { word: word },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {




                $(".tablefill").append("<table><tr><td>meaning id</td><td>meaning</td></tr><tr><td>"+result[0]+"</td></tr></table>");
                    console.log(result);
                }, error: function (err) {
                    alert('ERROR');

                }
            });
        });
    });

在我測試代碼ajax成功之后,沒有錯誤或失敗,但是結果始終是控制台日志中的未定義對象

console.log(result.success);

您確定“成功”是“結果”的成員嗎? 也許嘗試看看console.log(result)的作用。

您可以從瀏覽器開始,然后向后調試。

打開您的開發者控制台(適用於chrome的F12),轉到“網絡”標簽,然后再次讓Ajax啟動。

然后,您很可能會注意到服務器回復了200,只是沒有內容。

現在,您可以開始並將返回結果返回查詢。

我敢打賭,很可能返回了0行,並且您的循環沒有填充stringArr。 一旦查詢返回一些行,您可能會遇到另一個錯誤,因為我對多維數組不確定。 看起來您可能正在嘗試遍歷相等數量的列(因為您有行)。

我敢肯定,一旦它們顯示出來,您就會解決在代碼隱藏中出現的錯誤。

result應該是數據庫中的一組項目。 result.success始終是未定義的,返回的對象上沒有.success

在另一個主題上,您需要解決SQL注入問題。 https://en.wikipedia.org/wiki/SQL_injection

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM