![](/img/trans.png)
[英]JQuery AJAX response returning only [object Object] and Undefined in C# 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.