I'm calling an api through javascript using a jQuery.ajax call. The api respond with 401 if the user is not authenticated and I want to ignore this error only for this call.
I've tried all the callback options described in the jQuery options but the error still pops out in the browser console (both in Firefox and Chrome).
Here is a sample code which trigger the error:
$.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!");
});
This also has the side effect of requesting again the user credentials on a staging machine which is protected by an .htaccess file since the browser thinks that the user is not authenticated, so in following requests the user needs to reenter his http credentials.
Is there any way to completely ignore this error?
Edit
Currently I have an HTML template which is entirely cached application side and I want to keep this behavior for performance reasons. The only part which changes in the layout is the login informations for the current user, so I'm rendering the (cached) page with the default markup for not logged in users and then using jQuery I replace the relevant elements of the markup with the login informations returned by an ajax call. So if the user is not logged and the ajax endpoint return 401 I don't need anything, the markup should remain the same.
Everything is working at this moment, the only ugly thing is that I have that 401 javascript error in the console and I'd like to get rid of it.
Here is a screenshot of the message I'm talking about:
statuscode
? Seems like you say that is the only problem. Can also have server send a special header for the non authorized users – Opener