jquery - ajax 在 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 方法,成功时它将更改包含返回 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),转到 Network 选项卡,然后让 Ajax 再次启动。
然后你很可能会注意到服务器回复了 200 响应,只是没有内容。
现在您开始并从返回的结果返回到您的查询。
我敢打赌,很可能返回了 0 行,并且您的循环没有填充 stringArr。一旦您的查询返回一些行,您可能会遇到另一个错误,因为我对多维数组有点不确定。看起来您可能正在尝试遍历相同数量的列,因为您有行。
我敢肯定,一旦它们开始出现,您将修复代码隐藏中出现的错误。
推荐阅读
- excel-formula - 如何替换公式中的“定义名称”手动输入
- linux - 为什么我不能在汇编中打印数字?
- mysql - 如果选择结果小于 10,如何更改条件
- airflow - 如何让气流跳过时间表?
- mdriven - 如何在 Eco 模型中生成索引
- python - AWS Code-Pipeline,Python:获取当前正在部署的提交名称
- android - 如何保持片段状态?
- wordpress - 从 Wordpress 获取登录状态到 laravel
- docker - Docker Compose 扫描主机网络的 Wifi
- json - Parsing JSON With Requests library In Django