【问题标题】:Ajax not making function callAjax 不进行函数调用
【发布时间】:2014-07-24 21:30:05
【问题描述】:

我有 ajax 功能:

function LoadTeacherObservationData(_CategoryID, _SearchText) {
        alert("In here");
        alert(_CategoryID);
        alert(_SearchText);
        flag = 1;
        $.ajax({
            url: "PP/getTeacherObservationData",
        data: {
        'CategoryID': _CategoryID,
        'SearchText': _SearchText
        },
    dataType: "json",
        type: 'POST',
    cache:false,
    success: function (data) {
        OnlebelChange(_CategoryID);
        $('#hdnCategoryID').val(_CategoryID);

        $("#lvTeacherData").kendoListView({
            dataSource: data,
            dataBound: function(e) {
                if(this.dataSource.data().length == 0){
                    //custom logic
                    $("#lvTeacherData").append("<h4>&nbsp;&nbsp;No record found.</h4>");

                }},
            template: kendo.template($("#lvTeacherData_Template").html())
        });
    },
    error: function () {
        alert("error in click");
    }
    });
    }

我已通过警告框检查了该函数,并确保使用正确的参数调用该函数。

我的问题是它没有被渲染到:

我在 URL 中提到的 PP/getTeacherObservationData。

PP 是我的控制器,getTeacherObservationData 是我的函数。

我写的函数如下:

public JsonResult getTeacherObservationData(string CategoryID, string SearchText)
        {
            try
            {
                if (CategoryID == "1")
                    return Json(new TeacherObservation().ScheduledObserVations(SearchText));
                if (CategoryID == "2")
                    return Json(new TeacherObservation().InProcessObservations(SearchText));
                if (CategoryID == "3")
                   return Json(new TeacherObservation().CompletedObservations(SearchText));

                return Json(new List<TeacherObservation>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

而不是调用这个函数 ajax 函数代码进入错误块并给我警报:error in click

可能是什么问题??

请帮帮我。

我想通过ajax进行函数调用。

使用 MVC4。

【问题讨论】:

  • @MrCode 它的 404 错误..
  • 那你的网址不对。尝试/PP/getTeacherObservationData 转到根目录而不是相对目录。
  • @MrCode 成功了...如果您将此作为答案发布,我会接受... :) 谢谢

标签: c# javascript .net ajax asp.net-mvc-4


【解决方案1】:

扩展我的评论:URL PP/getTeacherObservationData 是相对的,所以如果您当前不在站点的根目录中,那么这将不起作用。

如果您的站点位于域的根目录中,则使用正斜杠前缀 /PP/getTeacherObservationData 将起作用。

您也可以使用this answer 中的解决方案之一。比如ResolveUrl("~/")动态获取站点的根,这样更好,因为它更便携。例如,如果您将站点从域的根目录中移出并移到一个目录中,这将继续有效,这与对根目录进行硬编码不同。

【讨论】:

    【解决方案2】:

    我不知道你使用的是什么 PHP 框架,但通常你不能只是 return 一个 AJAX 调用的值,你必须以某种方式输出它以将其发送回调用者。尝试使用echoprint 而不是return。

    为防止进一步呈现(如果有),您应该在脚本回显您指定的 JSON 后以某种方式结束脚本。

    您还应该检查在 firebug 或类似控制台中呈现的输出,以查看您是否获得了纯 JSON(您显然期望的)或一些由您的 php 框架呈现且无法解析的 HTML 包装内容。

    【讨论】:

    • 对不起,我没有正确检查先决条件。因为它是 404,所以我的答案不会为您添加太多有用的信息——但总的来说,这就是我在这里检查错误的方式,与框架无关。干杯!
    猜你喜欢
    • 1970-01-01
    • 2014-02-21
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多