Можно попробовать отловить ошибку на клиенте.
В контроллере оставить
if (Request.IsAjaxRequest())
{
return new new HttpStatusCodeResult(401);
}
а на клиенте настроить ajax-запрос
$.ajax({ url: "http://..." })
.statusCode({
200: function(){
alert('Success');
},
401: function(){
alert('Unauthorized response');
}
});
или как-то так
$.ajax({
url: "http://...",
data: {},
complete: function(xhr, statusText){
alert(xhr.status); // в случае ошибки авторизации должно быть 401
// скорее всего, statusText равен 'parsererror', если ошибка авторизации, и "success" - если все ок
}
error: function(xhr, statusText, errorThrown)
{
alert(xhr.status); // в случае ошибки авторизации должно быть 401
// скорее всего, statusText равен 'parsererror' в случае ошибки авторизации
}
});