ajax json 方法中未定义的错误
本文关键字:错误 未定义 json 方法 ajax | 更新日期: 2023-09-27 18:34:17
我对json
方法有问题,它给了我这个错误。这是我的代码:
function test() {
$.ajax({
type: "POST",
url: 'zz.aspx/GetDate',
//processData: false,
data: "{'keyWord':" + keyWord + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.length > 0) {
$("#suggestions").fadeIn();
$("#suggestions").html(msg);
setTimeout('ToogleAct();', 500);
} else {
$("#suggestions").fadeOut();
$('#actions').css('display', 'none');
alert('ERROR [sasa ]');
}
},
error: function (xhr, status, error) {
alert('ERROR [ ' + error + ' ]');
}
});
} else {
$("#suggestions").fadeOut();
}
}
这是 c# 代码:
public static string GetDate(string keyWord)
{
string S = "";
DataTable dt = DataLayer.Maghale.Search(keyWord).Tables[0];
S += "<div id='"SGR'" style='"height: auto;'"><div id='"APL'">";
foreach (DataRow dr in dt.Rows)
{
S += "<a href='"" + dr["Alias"].ToString() + "'">" +
"<div class='"imageholder'"> " +
"<img src='"~/MakeThumbnail.aspx?file=~/Images/CustomImages/Seo-S.png&i=80&j=80'")'"></div>" +
"<span class='"SGSH1'">" + dr["Title"].ToString() + "</span>" +
"<span class='"SGSH2'"> " + dr["Description"].ToString().Substring(0, 15) + " ... </span></a>";
}
S += "</div></div>";
return S;
}
当我使用类型:帖子时;然后是我的味精。长度>0 返回假为什么会发生这种情况,我应该怎么做才能返回我的字符串并将其放入 HTML 中?
当我使用 type=GET 时:给我未定义的错误这是发布和获取之间的区别以及我何时应该使用 get 或发布请告诉我,谢谢
您需要正确设置 ajax 调用。您正在将一个字符串传递给 ajax data
这是有效的,但我想您想在服务器端使用"keyWord"变量访问提交的值。更改 ajax 的data
,如下所示:
data: { keyWord: $.trim($("#txtSearchBox").val()) },
此外,将setTimeout('ToogleAct();', 500);
更改为setTimeout(ToogleAct, 500);
如果你看一下这个链接,你会得到post
的完整描述get
http://www.cs.tut.fi/~jkorpela/forms/methods.html
HTML规范在技术上定义了两者之间的区别 "GET"和"POST",因此前者表示要对表单数据进行编码 (通过浏览器(进入URL,而后者意味着表单数据是 以显示在邮件正文中。但规格也给出了 使用建议在以下情况下应使用"GET"方法 表单处理是"幂等的",并且仅在这些情况下。作为一个 简化,我们可能会说"GET"基本上只是为了获得 (检索(数据,而"POST"可能涉及任何内容,例如存储或 更新数据,或订购产品,或发送电子邮件。
成功后,检查msg.d
,使用chrome开发人员工具或Firebug来检查您收到的回复。
我建议的另一件事是,在使用字符串连接时StringBuilder
类。因此,与其string +=
,不如StringBuilder.Append
哪个更有效。