Maison >interface Web >js tutoriel >Quelle est la raison du JavaScript inter-domaines ?
La raison pour laquelle JavaScript est inter-domaine : la restriction de la politique de même origine du navigateur, le js du nom de domaine actuel ne peut lire que les attributs de fenêtre dans le même domaine, donc un inter-domaine se produit. La politique de même origine signifie que afin de garantir la sécurité des informations des utilisateurs et d'empêcher les sites Web malveillants de voler des données, les navigateurs interdisent l'interaction de JS entre différents domaines.
L'environnement d'exploitation de ce tutoriel : système Windows 10, JavaScript version 1.8.5, ordinateur Dell G3.
Le problème inter-domaines est limité par la politique de même origine du navigateur. Le js du nom de domaine actuel ne peut lire que les attributs de fenêtre dans le même domaine.
En raison des restrictions de la politique de même origine du navigateur. La politique de même origine est une convention. Il s'agit de la fonction de sécurité essentielle et la plus élémentaire du navigateur. Si la politique de même origine est manquante, les fonctions normales du navigateur peuvent être affectées. On peut dire que le Web est construit sur la base de la politique de même origine. Le navigateur n'est qu'une implémentation de la politique de même origine. La politique de même origine empêche les scripts JavaScript d'un domaine d'interagir avec le contenu d'un autre domaine. La soi-disant même origine (c'est-à-dire dans le même domaine) signifie que les deux pages ont le même protocole, le même hôte et le même numéro de port.
En termes simples, la politique de même origine signifie que afin d'assurer la sécurité des informations des utilisateurs et d'empêcher les sites Web malveillants de voler des données, le navigateur interdit les interactions JS entre différents domaines. Pour les navigateurs, tant que l'un des noms de domaine, protocoles et ports est différent, la politique de même origine sera déclenchée, limitant ainsi les interactions suivantes entre eux :
1 Les cookies, LocalStorage et IndexDB ne peuvent pas être lus ;
2. DOM ne peut pas être lu. Get ; 3.La requête AJAX ne peut pas être envoyée. La définition stricte du cross-domain est la suivante : tant que le protocole, le nom de domaine et le port sont différents, il est considéré comme cross-domain.Solution cross-domain
JSONP : Vous devez ajouter dataType : "jsonp" à la méthode de requête, //Le format des données est défini sur jsonp, jsonp:"callback", //Le nom du paramètre de vérification généré par Jquery1 , dataType, ce paramètre doit être défini sur jsonp2, jsonp, la valeur de ce paramètre doit être convenue avec le côté serveurnginx reverse proxywebpack Configurer le proxy inverse : utilisez directement le devServer d'échafaudage pour configurer le proxy inverse Résoudre les problèmes inter-domaines dans le processus de développementPartage de ressources inter-domaines (CORS)nodejs cross-domain : utilisez nodejs pour configurer un serveur localement Utilisez ce serveur pour appeler le serveur d'arrière-plan. pour renvoyer les données puis les renvoyer au front-end Il n'y a pas de connexion entre les serveursProtocole WebSocket cross-domainGrâce à JSONP
Comprenez par vous-même : JSONP utilise l'attribut src du script. tag pour réaliser plusieurs domaines. Vous ne pouvez utiliser que des requêtes get, et l'arrière-plan vous renverra une méthode. Vous utilisez cette méthode. Obtenez les données que vous voulezPrincipe jsonp Le front-end définit une méthode et la transmet à l'arrière. -end via l'attribut src. Une fois que le back-end a obtenu la méthode, il transmet la méthode d'épissage des données, puis la transmet au front-end. Le front-end l'appelle comme une méthodeJSONP est principalement une méthode de requête encapsulée. pour ajouter un rappel, ce rappel est accepté par le front-end et le back-end Recommandations associées :Tutoriel d'apprentissage javascript
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!