0
votes

JavaScript Vérifier si une URL de site est accessible

J'essaie de trouver la meilleure méthode JQuery pour vérifier si une URL de site est accessible. Tout ce que j'ai besoin de faire, c'est confirmer que l'utilisateur peut accéder au site. Cependant, avec Cors, je ne suis pas tout à fait sûr de la meilleure façon de le faire. J'essayais cela mais rencontrer des problèmes. XXX PRE>

Mais je reçois l'erreur suivante: P>

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://my-site.com. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).


4 commentaires

Remarque: Succès pas Succee .


En pensant à cela ... La réception d'une erreur d'en-tête CORS indique que le client peut accéder au site. Si l'utilisateur n'a pas pu résoudre l'URL, vous ne recevriez pas d'erreur CORS. Si l'URL était en panne, vous n'obtiendrez pas une erreur de Cors.


@ S.walker qui est également un point valide .. Peut-être qu'il n'y a pas de moyen facile d'accomplir cela.


@ S.Walker Vous ne le savez pas. Un bon nombre de personnes ont des fournisseurs de services Internet qui répondent automatiquement à des demandes à des noms d'hôtes non valides. Ou des pages de portail captives sur wifi. Il n'y a pas de moyen de dire à l'origine croisée.


3 Réponses :


1
votes

En raison de restrictions à l'origine croisée, vous ne pourrez pas faire ce côté client. Vous devrez avoir un service de serveur de service.


2 commentaires

Le problème est que je cherche à tester la connectivité des navigateurs du client - et non au serveur à certains sites.


@Aarona Vous ne pouvez pas, en raison de restrictions à l'origine croisée. (Sauf si bien sûr, le site vous permet de le faire ... mais s'ils l'ont fait, je suppose que vous n'auriez pas posé la question.)



0
votes

Vous pouvez essayer d'ajouter des propriétés crossdomain avec une valeur true, initialisez également des cors de support par true.

$.support.cors = true;

$.ajax({
    type: 'HEAD',
    url: url,
    crossDomain: true,
    succees: function(){
      callback(true);
    },
    error: function() {
      callback(false);
    }
 });


0 commentaires

0
votes

Vous pouvez utiliser` xxx


1 commentaires

Cela ne résout pas le problème cross-origine décrit dans la question.