L'exemple de cet article analyse les points à noter lors de la configuration de document.domain en js pour réaliser une implémentation inter-domaines. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :
document.domain
Utilisé pour obtenir le nom de domaine de la page Web actuelle.
Par exemple, saisissez dans la barre d'adresse :
Nous pouvons également attribuer une valeur à l'attribut document.domain, mais il existe des restrictions. Vous ne pouvez l'attribuer qu'au nom de domaine actuel ou au nom de domaine de base.
Par exemple :
Les affectations ci-dessus sont toutes réussies car www.jb51.net est le nom de domaine actuel et jb51.net est le nom de domaine de base.
Mais l'affectation suivante provoquera une erreur « paramètre non valide » :
Étant donné que cctv.net et www.jb51.net ne sont pas le nom de domaine actuel ni le nom de domaine de base du nom de domaine actuel, des erreurs se produiront.
Il s'agit d'empêcher quelqu'un de modifier de manière malveillante document.domain pour voler des données entre domaines.
Utilisez document.domain pour réaliser du cross-domain :
Prérequis : Ces deux noms de domaine doivent appartenir au même nom de domaine de base ! Et les protocoles et ports utilisés doivent être cohérents, sinon document.domain ne peut pas être utilisé en cross-domain
Javascript interdit l'interopérabilité de deux pages ou plus de domaines différents pour des raisons de sécurité.
Les pages du même domaine interfonctionneront sans aucun problème.
Par exemple, dans une page Web (a.html) de aaa.com, une page Web (b.html) de bbb.com est introduite à l'aide d'iframe.
À l'heure actuelle, le contenu de b.html peut être vu dans a.html, mais javascript ne peut pas être utilisé pour le faire fonctionner. Parce que les deux pages appartiennent à des domaines différents, avant d'opérer, js vérifiera si les domaines des deux pages sont égaux, l'opération sera autorisée. S'ils ne sont pas égaux, l'opération sera rejetée.
Il est impossible de remplacer a.html et b.html par le même domaine en utilisant JS. Parce que leurs noms de domaine de base ne sont pas égaux. (Si vous forcez JS à les changer en champs égaux, la même "erreur de paramètre invalide" que ci-dessus sera signalée)
Donc, si vous introduisez une autre page Web de aaa.com dans a.html, il n'y aura aucun problème car les domaines sont égaux.
Il existe une autre situation, deux sous-domaines :
aaa.xxx.com
bbb.xxx.com
Une page web (a.html) en aaa introduit une page web (b.html) en bbb,
Pour le moment, le contenu de b.html ne peut pas être manipulé dans a.html.
Étant donné que le document.domain est différent, l'un est aaa.xxx.com et l'autre est bbb.xxx.com.
À ce stade, nous pouvons changer le domaine des deux pages pour le même via Javascript,
Besoin d'ajouter à la fois a.html et b.html :
De cette façon, les deux pages peuvent fonctionner ensemble. C'est-à-dire qu'un « cross-domaine » entre les mêmes noms de domaine de base est réalisé.
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.