次の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メソッドの呼び出しで、 「エラー:200OK」が返されることがあります。
エラーの頻度が低いため、Webサーバーが「悪い状態になり」、(何らかの理由で)着信要求を処理できないと思います。
私が理解しているように、「エラー:200 OK」は、返されたコンテンツが不正な形式であり、指定されたcontentTypeに準拠していないことを意味する場合があります。それはすべてうまくいっていますが、コードが定期的にこの状態の影響を受けやすい理由を理解する必要があります。
誰かが助けることができますか?