navigator.en ligne n'est pas toujours de travail
Je vais avoir un problème avec le navigateur.propriété en ligne.
Je suis à court d'un simple site web à partir d'un kiosque local en cours d'exécution sur un WAMP.
Sur mon ordinateur portable lorsque je test ce que ça fonctionne. J'ai désactivé le WiFi et la boîte d'alerte s'affiche. Déconnexion de l'internet sur le kiosque de l'exécution de l'WAMP logiciel ne permet pas de produire de la fausse qualité. Des idées pourquoi?
var online = navigator.onLine;
if (online == false) {
alert("Sorry, we currently do not have Internet access.");
location.reload();
}
Vous devez vous connecter pour publier un commentaire.
MDN sur navigator.en ligne:
Comme décrit ci-dessus, cette propriété n'est pas fiable, donc, à mon avis, la meilleure solution est un appel ajax vers une page côté serveur. Si le navigateur est en mode hors connexion, la connexion échoue et, ainsi, la
onerror
événement sera appelé. Sinon, leonload
événement est appelé:function isOnline(yes, no){ ... }
yes
fonction).navigator.online
. Mais je ne voudrais pas utiliserGET
méthode, mais plutôtHEAD
, parce que vous ne voulez vérifier si vous êtes en ligne, vous n'avez pas besoin de contenu...www.YourSite.com
àhttps//:google.com
, une erreur s'élever si le site cible (google.com
) n'a pas acceptéCross Site Calls
. S'il vous plaît corrigez-moi si je me trompe.Comme
Danilo Valente
souligné:navigator.onLine
propriété n'est pas fiable,Mais PAS tous d'erreur dans l'ajax de réponse signifie que vous êtes déconnecté d'internet! C'est peut être une erreur de l'API (403,500,404 ....)
Si vous utilisez
axios
, vous pouvez distinguer les erreurs de ce type: