Jquery Ajax Call只运行一次,直到我重新启动应用程序

时间:2012-01-11 14:34:24

标签: jquery ajax asp.net-mvc

我的ajax通话仅在第一次使用。之后我得到一个方法不允许异常。 这是我的java脚本代码:

 $('.AppFormFormNewOT').submit(function () {

    var formID = $(this).attr('id');

    var appDate = $('#' + formID + ' .dateHiddenInput').val();
    var appMit = $('#' + formID + ' .mitHiddenInput').val();
    var am = $('#' + formID + ' .amCheckBox').attr('checked');
    var pm = $('#' + formID + ' .pmCheckBox').attr('checked');

    if (!am && !pm) {
        alert("Bitte geben Sie einen Halbtag an");
        return false;
    }
    var vorOrNach;
    if (am == 'true,false') {
        vorOrNach = 'FirstHalfDayHasAppointment';
    } else {
        vorOrNach = 'SecondHalfDayHasAppointment'
    }

    var url = 'Plan/' + vorOrNach + "/";
    var occupied = true;
    $.ajax({
        type: 'POST',
        url: url,
        datatype: 'text',
        async: false,
        data: {
            date: appDate,
            id_person: appMit
        },
        success: function (data) {
            occupied = data;
            if (occupied == "True") {
                alert("Hier ist bereits ein Termin");
                return false;
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('Ajax error');
            alert(textStatus);
            alert(errorThrown);
            return false;
        }


    });
    if (occupied == "True" || occupied == true) {
        return false;
    } else {
        return true;
    }


});

它调用的方法很简单:

[ScriptMethod][HttpPost]
    public string FirstHalfDayHasAppointment(DateTime date, int id_person)
    {
          bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.AM);
          return hasApp.ToString();


    }

    [ScriptMethod][HttpPost]
    public string SecondHalfDayHasAppointment(DateTime date, int id_person)
    {
        bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.PM);
        return hasApp.ToString();
    }

当我重新启动应用程序(而不仅仅是重新加载页面)时,第一次调用再次起作用,之后的任何调用再次失败。

编辑:当我在函数中返回true时,ajax调用总是成功:

  [ScriptMethod][HttpPost]
    public string FirstHalfDayHasAppointment(DateTime appDate, int id_person)
    {
        return "True";



    }

    [ScriptMethod][HttpPost]
    public string SecondHalfDayHasAppointment(DateTime appDate, int id_person)
    {
        return "True";

    }

所以问题似乎是在服务器端。但是我不知道这与ajax有什么关系以及为什么ajax返回一个方法不允许异常。希望这些信息有用。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我将变量'url'的名称更改为另一个名称,例如'myurl',我工作了。似乎变量'url'有一些预定义的值。