Maison > développement back-end > tutoriel php > Solution multidomaine Ajax sous PHP - exemple d'analyse window.name explication détaillée

Solution multidomaine Ajax sous PHP - exemple d'analyse window.name explication détaillée

coldplay.xixi
Libérer: 2023-04-09 12:46:01
avant
1997 Les gens l'ont consulté

Solution multidomaine Ajax sous PHP - exemple d'analyse window.name explication détaillée

L'exemple de cet article décrit la solution cross-domain ajax window.name sous PHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Principe de base : L'attribut name de l'objet window est un attribut très spécial lorsque l'emplacement de la fenêtre change puis est rechargé, son nom. L'attribut peut toujours rester inchangé.

Selon ce principe, nous pouvons utiliser l'iframe dans la page A pour charger la page B d'autres domaines, et utiliser JavaScript dans la page B pour attribuer les données qui doivent être transmises à window.name après l'iframe de. la page A est chargée, la page A modifie l'adresse de l'iframe et la change en une adresse dans le même domaine, puis la valeur de window.name peut être lue.

Recommandations d'apprentissage associées : programmation php (vidéo)

Exemple : Il existe deux sites Web www.a.com et www.b.com, nous souhaitons obtenir les données www.b.com/data.html sous www.a.com/a.html.

Nous avons besoin de trois fichiers :

a.html sous www.a.com pour obtenir des données et afficher
data.html sous www.b.com pour fournir des données
Le fichier proxy proxy.html sous www.a.com se trouve dans le même domaine que a.html et est généralement un fichier html vide.

Le data.html sous www.b.com est le suivant :

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Insert title here</title>
</head>
<body>
  <script type="text/javascript">
    //添加需要传递的数据,大小一般为2M,IE和firefox下可以大至32M左右
    window.name = &#39;[{"name":"test1"},{"name":"test2"}]&#39;;
  </script>
</body>
</html>
Copier après la connexion

Le proxy.html sous www.a.com est le suivant :

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Insert title here</title>
</head>
<body>
  <!-- 空的html文件 -->
</body>
</html>
Copier après la connexion

www.a Le a.html sous .com est le suivant :

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Insert title here</title>
</head>
<body>
 
<!-- 用于引用www.b.com/data.html文件 -->
<iframe id="iframe" src=""></iframe>
 
<!-- 显示获取到的数据 -->
<p id="data"></p>
 
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript">
var ifr = document.getElementById("iframe");
ifr.src = "http://www.b.com/data.html";
if (ifr.attachEvent) {
  ifr.attachEvent("onload", loadfunc);
} else {
  ifr.onload = loadfunc;
}
 
var state = 0;
function loadfunc() {
  if(state == 0) {
    state = 1;
    ifr.contentWindow.location = "http://www.a.com/proxy.html";
  } else {
    var data = ifr.contentWindow.name;
    $.each($.parseJSON(data), function(i, v) {
      $("#data").append(v.name);
    });
     
    //销毁iframe,保证安全
    ifr.contentWindow.document.write("");
    ifr.contentWindow.close();
    document.body.removeChild(ifr);
  }
}
</script>
</body>
</html>
Copier après la connexion

Recommandations vidéo associées : Programmation PHP de l'entrée à la maîtrise

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:jb51.net
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