Я получаю сообщение об ошибке «401 - неавторизовано» в элементе управления автозаполнением jQuery в приложении MVC3 (.net framework v4.0.30319), которое развернуто на сервере, содержащем IIS 7.5
Контроллер: (SearchSuggestController)
[HttpGet]
public JsonResult SuggestByEmployeeId(string Id)
{
var suggestions = from a in Context.Employees
where a.EmployeeId.Contains(Id)
select new
{
a.EmployeeId,
a.FirstName,
a.LastName
};
return Json(suggestions, JsonRequestBehavior.AllowGet);
}
jQuery: (автозаполнение)
$(function () {
$("#IDFilter").autocomplete({source: function (request, response) {
$.ajax({
url: "/SearchSuggest/SuggestByEmployeeId",
type: "POST",
dataType: "json",
data: { Id: request.term },
error: function (XMLHttpRequest, status, error) {
alert("Error status:(" + status + ") error:(" + error + ")");
},
success: function (data) {
response($.map(data, function (item) {
return { label: item.EmployeeId, value: item.EmployeeId,id: item.EmployeeId };
}));
}
});
},
minLength: 3,
autoFocus: true,
select: function (event, ui) {
$("#IDFilter").val(ui.item.value);
}
});});
jQuery вызывает url: "/ SearchSuggest / SuggestByEmployeeId" т.е. действие SuggestByEmployeeId контроллера SearchSuggest.
Search.cshtml: (просмотр)
@using (Html.BeginForm("BasicSearch", "Employee"))
{
@Html.Label("Employee Id:")
@Html.TextBox("IDFilter")
<input type="submit" value="Search" />
}
Метод действия BasicSearch в контроллере Employee работает нормально, если в «IDFilter» введен действительный идентификатор EmployeeID и нажата кнопка «Поиск».
При автозаполнении отображаются ожидаемые результаты при выполнении кода черезвизуальная студия IDE.После публикации Bin и развертывания этого кода в IIS 7.5 выдает 401-Unauthorized error.Приложение размещено на веб-сайте по умолчанию в IIS.
Кто-нибудь знает, что здесь происходит не так?