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 - JSONPSupposons 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元素
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>
"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!