Maison >Opération et maintenance >exploitation et entretien des fenêtres >Qu'est-ce que le cross-domain et comment le résoudre
Je crois que beaucoup de gens ont entendu parler du cross-domain, mais beaucoup de gens ne savent pas ce que signifie le cross-domain. Alors, expliquons ce qu'est le cross-domain et comment le résoudre.
1 : Qu'est-ce que le cross-domain
Le cross-domain signifie que le navigateur ne peut pas exécuter de scripts provenant d'autres sites Web. Cela est dû à la politique de même origine du navigateur, qui est une restriction de sécurité mise en œuvre par le navigateur sur JavaScript. Lorsqu'un navigateur demande des ressources d'une page Web d'un nom de domaine à un autre nom de domaine, toute différence de nom de domaine, de port ou de protocole est considérée comme inter-domaine.
Deux : Comment résoudre les problèmes inter-domaines
1 jsonp inter-domaines
JSONP (JSON with Padding : padding JSON), un. des méthodes d'application de JSON Une nouvelle méthode,
La différence entre JSON et JSONP :
1 JSON renvoie une chaîne de données, tandis que JSONP renvoie du code de script (incluant un appel de fonction) <.>
2. JSONP ne prend en charge que les demandes d'obtention et ne prend pas en charge les demandes de publication (similaire à l'ajout d'une balise de script à la page et au déclenchement d'une demande pour l'adresse spécifiée via l'attribut src, afin qu'il puisse être uniquement une requête Get) 2. proxy inverse nginx : www.baidu.com/index.html doit appeler www.sina.com/server.php, vous pouvez écrire un interface www.baidu.com/server.php, par Cette interface appelle www.sina.com/server.php sur le backend et obtient la valeur de retour, puis la renvoie à index.html3. headeren-tête côté PHP (' Access-Control-Allow-Origin:*'); //Autoriser l'accès depuis toutes les sources en-tête ('Access-Control-Allow-Method: POST,GET'); //Autoriser la méthode d'accès4 document.domainLe cross-domain est divisé en deux types, l'un est que xhr ne peut pas accéder aux documents provenant de différentes sources, et le L'autre est que différentes fenêtres ne peuvent pas interagir les unes avec les autres ; document.domain résout principalement la deuxième situation et ne peut être appliqué qu'au même domaine principal et à différents sous-domaines Le paramètre de document ; .domain est limité, nous ne pouvons définir document.domain que sur lui-même ou sur un domaine parent de niveau supérieur, et le domaine principal doit être le même. Par exemple : le document.domain d'un document dans a.b.example.com peut être défini sur a.b.example.com, b.example.com et example.com, mais il ne peut pas être défini sur c.a.b.example.com car cela est le sous-domaine actuel du domaine ne peut pas être défini sur baidu.com car le domaine principal n'est plus le même. 5, window.name Points clés : window.name partage un window.name dans le cycle de vie de la page Compatibilité : prise en charge de tous les navigateurs Avantages : L'utilisation la plus simple des fonctionnalités du navigateur pour transférer des données entre différents domaines Pas besoin de préparation particulière du front-end et du back-end Inconvénients :
Limite de taille : la taille maximale de window.name est d'environ 2 Mo, et différents navigateurs ont des conventions différentes Sécurité : toutes les fenêtres de la page actuelle peuvent être modifiées, ce qui est très dangereux ;
Type de données : Les données transmises ne peuvent être limitées qu'à des chaînes. S'il s'agit d'un objet ou autre, elles seront automatiquement converties en chaîne. 6, postMessagePoints clés : postMessage est un nouveau concept introduit par h5, et il est maintenant davantage promu et développé. Il a réalisé une série de. encapsulations , nous pouvons l'utiliser via window.postMessage et surveiller les messages qu'il envoie Compatibilité : la version mobile peut être utilisée en toute confiance, mais la version PC doit être rétrogradée AvantagesVous pouvez réaliser des opérations inter-domaines sans intervention back-end. Une seule fonction plus deux paramètres (demander une URL, envoyer des données Bonne compatibilité mobile
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!