0

给定以下 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”。

错误的罕见性质使我相信我的 Web 服务器“处于错误状态”,并且(无论出于何种原因)无法为传入的请求提供服务。

据我了解,“错误:200 OK”可能意味着返回的内容格式错误,不符合指定的 contentType。虽然这一切都很好,但我需要了解为什么我的代码可能会定期受到这种情况的影响。

有人可以帮忙吗?

4

1 回答 1

0

页面方法并不一致。

但是查询字符串可以改变“window.location.href”。

此页面将始终引用相同的代码隐藏文件,因此没有理由依赖“window.location.href”。我可以改为硬编码页面名称。

于 2009-07-14T17:59:25.707 回答