Maison > interface Web > js tutoriel > Résumé de trois méthodes pour obtenir un accès inter-domaines avec Ajax

Résumé de trois méthodes pour obtenir un accès inter-domaines avec Ajax

php中世界最好的语言
Libérer: 2018-04-24 16:51:42
original
2099 Les gens l'ont consulté

Cette fois, je vais vous présenter un résumé des trois méthodes d'Ajax pour obtenir un accès inter-domaines. Quelles sont les précautions pour qu'Ajax mette en œuvre un accès inter-domaines. Voici des cas pratiques, prenons. un regard.

1. Qu'est-ce que le cross-domain

Regardons d'abord la composition de l'adresse du nom de domaine :

http://www . 8080 / script​​​​🎜>             8080 (numéro de port) script/jquery.js (adresse demandée)

* Lorsque l'un des protocoles, nom de sous-domaine, nom de domaine principal et les numéros de port sont différents, tous comptent des "domaines" différents.

* Lorsque différents domaines demandent des ressources les uns aux autres, cela est appelé « cross-domain ».

Par exemple : http://www.abc.com/index.html requêtes http://www.def.com/sever.php

2. Traitement des requêtes croisées domain Méthode 1 -- Agent

(Cette méthode est relativement "stupide" donc je ne la présenterai pas en détail)

Par exemple, à Pékin (www.beijing.com/sever.php) et Shanghai (www.shanghai.com/sever.php) chacun dispose d'un serveur. Le backend à Pékin (www.beijing.com/sever.php) accède directement au service à Shanghai, puis renvoie la valeur de réponse obtenue au front-end. C'est-à-dire que le service de Pékin agit comme un proxy en arrière-plan et que le front-end n'a besoin que d'accéder au serveur de Pékin, ce qui équivaut à accéder au serveur de Shanghai. Ce type d'agent appartient à la technologie d'arrière-plan, je n'en parlerai donc pas.

3. Méthode 2 pour traiter le cross-domain - JSONP

Supposons que dans la page http://www.aaa.com/index.php, http : //www.bbb.com/getinfo.php soumet une requête GET, puis on ajoute le code suivant à la page www.aaa.com :

Quand la requête GET vient de http:/ /www.bbb. Lorsque com/getinfo.php revient, il peut renvoyer un morceau de code JavaScript, qui sera automatiquement exécuté et pourra être utilisé pour appeler une fonction de rappel dans http://www.aaa.com/index. page php. Regardez l'exemple suivant :

dans la page www.aaa.com :

dans la page www.bbb.com :

jsonp({ "name " :"Stephen Chow","age":45 });

  var eleScript= document.createElement("script"); //创建一个script元素
  eleScript.type = "text/javascript"; //声明类型、
  eleScript.src = "http://www.bbb.com/getinfo.php"; //添加src属性 引入跨域访问的url
  document.getElementsByTagName("HEAD")[0].appendChild(eleScript); //在页面中添加新创建的script元素
Copier après la connexion
C'est-à-dire qu'il est déclaré sur la page www.aaa.com et appelé sur la page www.bbb.com. Mais JSONP ne prend en charge que les requêtes « GET », mais pas les requêtes « POST ».

3. Méthode 2 pour la gestion inter-domaines -- XHR2 (méthode recommandée)

<script>
  function jsonp( json ){
    document.write( json.name ); //输出周星驰
}
<script>
<script src="http://www.bbb.com/getinfo.php"></script>
Copier après la connexion

"XHR2" nom complet "XMLHttpRequest Level2" est une méthode fournie par HTML5, pour le traitement inter-domaines, Access offre un excellent support et de nouvelles fonctionnalités.

* Les versions inférieures à IE10 ne prennent pas en charge

* Ajoutez simplement les deux lignes de code suivantes à l'en-tête côté serveur :

 header( "Access-Control-Allow- Origin:*" ); header( "Access-Control-Allow-Methods:POST,GET" );

Pour plus d'informations sur "XHR2", vous pouvez consulter la documentation officielle sur Je n'entrerai pas dans les détails ici, mais c'est une méthode très utile.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal