接收未定义的Ajax成功/完成函数
我使用的是jQuery1.11.1。我的代码如下所示,我收到对ajax调用的未定义响应。有人能帮我找到解决办法吗接收未定义的Ajax成功/完成函数,ajax,json,Ajax,Json,我使用的是jQuery1.11.1。我的代码如下所示,我收到对ajax调用的未定义响应。有人能帮我找到解决办法吗 $(document).ready(function () { $("#txtSearch").keyup(function (e) { e.preventDefault(); var x = $("#txtSearch").val(); // alert(x); $.ajax({ ty
$(document).ready(function () {
$("#txtSearch").keyup(function (e) {
e.preventDefault();
var x = $("#txtSearch").val();
// alert(x);
$.ajax({
type: "POST",
url: '@Url.Action("Search","OfficeLocation")',
dataType: "application/json; charset=utf-8",
data: JSON.stringify({"Location":x}),
// dataType: "json",
complete: function (data) {
var table = "<table class='table'>";
$.each(data, function (index, value) {
table += "<tr><td>" + value.Name + "</td></tr>";
});
table += "</table>";
alert(table);
$("#myData").html(table);
}
});
});
});
及有关的控制员:
public ActionResult Search(string Location)
{
var LocationViewModel = new List<OfficeAssignment>();
LocationViewModel = db.OfficeAssignments.Where(x => x.Name.StartsWith(Location)).ToList();
return Json(LocationViewModel,JsonRequestBehavior.AllowGet);
}
当我使用success而不是complete时,它不会命中success函数 这是因为complete在成功和错误回调之后运行。我认为您遇到了一个错误,所以请尝试捕捉它并查看它收到了什么
在javascript中,url“@url.ActionSearch,OfficeLocation”实际上是如何计算的?对我来说,它似乎不是一个有效的url。似乎url可以工作并将值发送给控制器,但无法将json结果返回给complete/success函数。我发现LocationViewModel包含了正确数量的值!那么,还有什么可能导致问题?!尝试添加“错误”处理程序并从此处进行调试。或者添加一个try-catch服务器端。可能发生了服务器端错误。如果服务器返回某些内容,则始终会有响应。另一件事是检查发送到服务器的POST请求,并查看它在浏览器的开发者工具中返回的内容。我尝试了读取此值的属性名称的方法,但仍然显示了类似的对象。