/ / Obtenir le statut de l’URL à l’aide de jquery - jquery, url, status

Obtenir le statut de l'URL à l'aide de jquery - jquery, url, status

J'essaie d'obtenir le statut d'erreur 403 interdite, je peux le faire avec php curl mais je dois le faire en utilisant jquery.

Voici mon code.

   $.ajax({

url: "https://s3.amazonaws.com/isdukg/01-jaimeson-complete_2_step_mix-pulse.mp3",
type: "GET",
crossDomain: true,
dataType: "jsonp",
statusCode: {
403: function() {
alert("Forbidden");
// or do something useful
}
}
});

$.ajax({

url: "https://s3-eu-west-1.amazonaws.com/fkcreate/Angles%2C%20Circles%20and%20Triangles..%20Instrumental.mp3",
type: "GET",
crossDomain: true,
dataType: "jsonp",
statusCode: {
403: function() {
alert("Forbidden");
// or do something useful
}
}
});

Une des URL générera une erreur 403 interdite que vous pouvez voir ici si vous ouvrez la fenêtre de la console et chargez la page - http://scaredem.users36.interdns.co.uk/

Je n'arrive pas à saisir cette erreur pour faire quelque chose d'utile avec.

Réponses:

4 pour la réponse № 1

Avec jQuery ajax, vous pouvez mapper des fonctions sur des codes d’état de réponse HTTP à l’aide de la propriété statusCode.

$.ajax({
statusCode: {
403: function() {
alert("Forbidden");
// or do something useful
}
}
});

1 pour la réponse № 2

Peut-être un timeout vous aider dans cette situation. Si la requête arrive à expiration dans 500 millisecondes, aucune réponse (j'ai essayé d'obtenir le statut de la réponse également, mais sans succès).

jsfiddle

            $.ajax({
url: "https://s3-eu-west-1.amazonaws.com/fkcreate/Angles%2C%20Circles%20and%20Triangles..%20Instrumental.mp3",
type: "get",
dataType: "jsonp",
crossDomain : true,
timeout : 500, // it is milliseconds
complete : function(xhr, responseText, thrownError) {
if(xhr.status == "200") {
alert(responseText); // yes response came
}
else{
alert("No response"); // no response came
}
}
});​