Я вызываю api через javascript, используя вызов jQuery.ajax. Ответ api на 401, если пользователь не прошел проверку подлинности, и я хочу проигнорировать эту ошибку только для этого вызова.
Я пробовал все параметры обратного вызова, описанные в параметрах jQuery, но ошибка все же появляется в консоли браузера (как в Firefox, так и в Chrome).
Вот пример кода, который вызывает ошибку:
$.ajax({
type: 'GET',
url: '/url-with-auth',
dataType: 'json',
statusCode: {
401: function (error) {
// simply ignore this error
console.log(error);
}
},
complete: logall,
error: function () {
// simply ignore this error
console.log(error);
},
async: false
}).fail(function () {
// ignore the error and do nothing else
console.log("$.get failed!");
});
Это также имеет побочный эффект повторного запроса учетных данных пользователя на промежуточном компьютере, который защищен файлом .htaccess, поскольку браузер считает, что пользователь не аутентифицирован, поэтому в следующих запросах пользователю необходимо повторно ввести свои учетные данные http.
Есть ли способ полностью игнорировать эту ошибку?
Изменить
В настоящее время у меня есть HTML-шаблон, который полностью кэширован для приложения, и я хочу сохранить это поведение по соображениям производительности. Единственной частью, которая изменяется в макете, является информация для входа для текущего пользователя, поэтому я просматриваю (кэшированную) страницу с разметкой по умолчанию для не зарегистрированных пользователей, а затем с помощью jQuery я заменяю соответствующие элементы разметки на данные входа, возвращаемые вызовом ajax. Поэтому, если пользователь не зарегистрирован и конечная точка ajax возвращает 401, мне ничего не нужно, разметка должна оставаться прежней.
Все работает в этот момент, единственное уродство в том, что у меня есть ошибка 401 javascript в консоли, и я бы хотел избавиться от нее.
Вот скриншот сообщения, о котором я говорю: