ASP.NET AJAX Page Методы несовместимы - PullRequest
0 голосов
/ 14 июля 2009

Учитывая следующий код JavaScript:

    function ValidateFlagAsUrgent() {
        selectedValuesList = document.getElementById('<%= _searchResultsUserControlUserControl.SelectedValuesHiddenFieldClientID %>').value;
        $.ajax({
            type: 'POST',
            url: window.location.href + '/' + 'AreAnyOfTheSelectedTasksInMyProjects',
            data: '{"selectedTasks":"' + selectedValuesList + '"}',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: AjaxProjectManagerSucceeded,
            error: AjaxFailed,
            async: false
        });
    }

    function AjaxProjectManagerSucceeded(result) {
        if (result.d == true) {
            document.getElementById('<%= _variableWarningCioLabel.ClientID %>').innerHTML = '';
            document.getElementById('<%= _areAnyOfTheSelectedTasksInMyProjects.ClientID %>').value = 'true';
        }
        else {              
            document.getElementById('<%= _areAnyOfTheSelectedTasksInMyProjects.ClientID %>').value = 'false';
        }
    }

    function AjaxFailed(result) {   
  alert('Error: ' + result.status + ' ' + result.statusText);
}

и с учетом следующего метода страницы в моем коде:

    [WebMethod]
    public static bool AreAnyOfTheSelectedTasksInMyProjects(string selectedTasks)
    {
        using (MyDataContext context = new MyDataContext())
        {
            IEnumerable<Guid> selectedTasksThatAreInMyProjects =
                from st in selectedTasks.Split('|')
                join t in context.Tasks
                    on st equals t.Number.ToString()
                join pr in context.ProjectRepresentatives.Where(pr => pr.UserID == ContextHelper.CurrentUserID)
                    on t.Request.ProjectID equals pr.ProjectID
                select t.ID;

            return selectedTasksThatAreInMyProjects.Any();
        }
    }

Вызов метода JQuery AJAX иногда возвращает 'Ошибка: 200 OK'.

Редкий характер ошибок заставляет меня поверить, что мой веб-сервер "находится в плохом состоянии" и (по какой-либо причине) не может обслуживать входящие запросы.

Насколько я понимаю, «Ошибка: 200 OK» может означать, что возвращаемое содержимое искажено и не соответствует указанному contentType. Хотя это все хорошо, мне нужно понять, почему мой код периодически подвержен этому условию.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 14 июля 2009

Методы страницы не несовместимы.

Но строка запроса может отличаться от 'window.location.href'.

Эта страница всегда будет ссылаться на один и тот же файл с выделенным кодом, поэтому нет причин полагаться на 'window.location.href' Вместо этого я могу жестко закодировать название страницы.

...