6
votes

Désactiver le lien HTML si le lien de l'URL renvoie une erreur

J'ai un bouton qui relie une autre page. Avant de cliquer sur ce lien, je veux vérifier si cette page renvoie actuellement une erreur ou s'il n'existe pas. Comment puis-je coder cela? Est-ce possible? Je veux désactiver le lien s'il n'existe pas ou s'il renvoie une erreur.


0 commentaires

4 Réponses :


3
votes

Vous pouvez utiliser Ajax pour charger la page, puis l'analyser pour voir s'il y a une erreur avant de rediriger l'utilisateur. Je comprendrais également une sorte de note à l'utilisateur sur la raison pour laquelle le lien ne fonctionne pas.


4 commentaires

comment? Peux-tu me donner un exemple. Je l'apprécierai beaucoup. Merci.


@newbie Il y a des exemples dans la documentation. API.JQUERY.com/JQUERY.AJAX


Pas exactement ce que vous voulez, mais pourrait être quelque chose à commencer! Stackoverflow.com/Questtions/2493974/...


Selon les demandes JQuery.ajax API, " la plupart " AJAX "sont soumises à la même stratégie d'origine; la demande ne peut pas récupérer avec succès les données d'un autre domaine, sous-domaine ou protocole", "script et Les demandes JSONP ne sont pas soumises aux mêmes restrictions de politique d'origine. " Ici, la question était que si la page en question existe ou renvoie une erreur (l'attribut de succès).



2
votes

Comme quelqu'un l'avait demandé, quelle est la langue de programmation latérale du serveur que vous utilisez, le cas échéant?

Consultez les réponses ici: Comment obtenir le code d'état de l'URL distante à l'aide de JavaScript / Ajax mais n'utilise pas JQuery? . Même question que cela, et les réponses couvrent toutes les bases.


2 commentaires

C'était moi lol. Supprimé le commentaire quand j'ai vu l'OP est de demander avec JS ou JQuery.


Toujours très pertinent, car les solutions les plus acceptées utiliseront une langue côté serveur afin que vous puissiez accéder à un autre domaine.



3
votes

Notez que je ferais cela sur le côté serveur. Cependant, comme vos tags sont liés à jQuery, je poste une solution que vous pouvez essayer avec jQuery.

Utilisation de jQuery, vous pouvez: p> xxx pré>

edit strong> P>

Comme Ribot a noté, cet exemple ne cache que le lien. Si vous souhaitez désactiver le désactiver, vous pouvez empêcher le comportement par défaut lorsque l'utilisateur clique sur le lien: p>

link.removeAttr('href');


1 commentaires

En fait, ici, le lien est caché, non désactivé



1
votes

Ajax en cliquant sur chaque demande, même si c'est une demande de tête (ce que vous devez utiliser généralement pour tester pour une existence d'une URL, c'est pourquoi ce verbe HTTP existe en premier lieu), frappe-moi simplement une idée incroyablement mauvaise. , même si vous pouviez surmonter les problèmes de domaine cross insurmontables probables (sauf si vous impliquez une sorte de vérification côté serveur appelé par Ajax). Maintenant, je suppose que vous pourriez être capable de sauvegarder des réponses à un endroit à un endroit afin que les liens ne soient pas revérifiés (du côté des clients ou du serveur), mais cela me frappe toujours comme une solution incroyablement compliquée à un problème qui ne pose généralement pas besoin de résolution.


0 commentaires