Capture 404 status with jQuery AJAX
Replace your error function as follows...
error:function (xhr, ajaxOptions, thrownError){
if(xhr.status==404) {
alert(thrownError);
}
}
how to handle 404 error in jquery.post
You can use a global error handler:
$(document).ajaxError(function(e, xhr, settings, exception) {
});
How can I catch jQuery AJAX errors?
try this:
$.ajax({
url: remoteURL,
type: 'GET',
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
}).always(function(jqXHR, textStatus) {
if (textStatus != "success") {
alert("Error: " + jqXHR.statusText);
}
});
XHR Listener:
$.ajax({
url: remoteURL,
type: 'GET',
xhr: function(){
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("error", function(evt){
alert("an error occured");
}, false);
xhr.addEventListener("abort", function(){
alert("cancelled");
}, false);
return xhr;
},
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
});
Ajax GET url on error jqxhr
Save your url
in a variable. And you can use it in the error function. Obviously the url will be same as it was supplied in the url parameter of the ajax request
var url = 'somewhere/foo';
$.ajax({
type: 'get',
url: url,
context: this,
success: this.mySuccess,
error: this.myError,
cache: false,
error: function(jqXHR, exception) {
//use url variable here
}
});
Another option can be this
$.ajax({
type: 'get',
url: 'https://google.com',
context: this,
success: this.mySuccess,
error: this.myError,
cache: false,
beforeSend: function(jqXHR, settings) {
jqXHR.url = settings.url;
},
error: function(jqXHR, exception) {
alert(jqXHR.url);
}
});
回答2
I believe the simplest way would be:
this.url
The this should be bounded to the ajax object instance that has the url attribute.
$.ajax({ url: getRootPath_web() + "//SelfRegistration/IsClientSelfRegistrationEnabled", type: "GET", dataType: 'json', headers: {"__RequestVerificationToken": token}, success: function(res) { console.log(res); selfRegistrationIsPublished = res; }, fail: function(jqXHR, textStatus) { swal('Error', jqXHR.message); }, error: function (xhr, ajaxOptions, thrownError) { swal('Error', `Request ${this.url} failed, status = ${xhr.status}, statusText = ${xhr.statusText}, responseText = ${xhr.responseText} `); } });