Pozbądź się 401 (nieautoryzowanego) błędu ajax w konsoli przeglądarki
Wywoływam api za pomocą javascript przy użyciu ajQuery.ajax połączenie. Interfejs API odpowiada 401, jeśli użytkownik nie jest uwierzytelniony i chcę zignorować ten błąd tylko dla tego wywołania.
Wypróbowałem wszystkie opcje wywołania zwrotnego opisane w opcjach jQuery, ale błąd nadal pojawia się w konsoli przeglądarki (zarówno w Firefoksie, jak i Chrome).
Oto przykładowy kod, który powoduje błąd:
$.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!");
});
Ma to również efekt uboczny, polegający na ponownym zażądaniu poświadczeń użytkownika na maszynie pomostowej, która jest chroniona przez plik .htaccess, ponieważ przeglądarka uważa, że użytkownik nie jest uwierzytelniony, więc w kolejnych żądaniach użytkownik musi ponownie wprowadzić swoje poświadczenia http.
Czy jest jakiś sposób, aby całkowicie zignorować ten błąd?
EdytowaćObecnie mam szablon HTML, który jest w pełni buforowany po stronie aplikacji i chcę zachować to zachowanie ze względu na wydajność. Jedyną częścią, która zmienia układ, są informacje logowania dla bieżącego użytkownika, więc renderuję (buforowaną) stronę z domyślnym znacznikiem dla niezalogowanych użytkowników, a następnie używając jQuery zamieniam odpowiednie elementy znacznika na informacje logowania zwrócone przez wywołanie ajax. Jeśli więc użytkownik nie jest zalogowany, a punkt końcowy ajax zwraca 401, niczego nie potrzebuję, znaczniki powinny pozostać takie same.
W tej chwili wszystko działa, jedyną brzydką rzeczą jest to, że mam błąd 401 javascript w konsoli i chciałbym się go pozbyć.
Oto zrzut ekranu wiadomości, o której mówię: