Jquery Ajax Call работает только один раз, пока я не перезапущу приложение - PullRequest
0 голосов
/ 11 января 2012

Мой вызов 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();
    }

Когда я перезагружаю приложение (а не просто перезагружаю страницу), снова срабатывает первый вызов, и любые последующие вызовы снова не выполняются.

edit: Когда я просто возвращаю 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 голосов
/ 18 января 2012

Я изменил имя переменной 'url' на другое имя, например 'myurl', и я работал.Кажется, переменная 'url' имеет какое-то предопределенное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...