Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接收未定义的Ajax成功/完成函数_Ajax_Json - Fatal编程技术网

接收未定义的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

我使用的是jQuery1.11.1。我的代码如下所示,我收到对ajax调用的未定义响应。有人能帮我找到解决办法吗

 $(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请求,并查看它在浏览器的开发者工具中返回的内容。我尝试了读取此值的属性名称的方法,但仍然显示了类似的对象。