Ajax-Domänenübergreifende Lösung unter PHP – ausführliche Erläuterung der Beispielanalyse von window.name

coldplay.xixi
Freigeben: 2023-04-09 12:46:01
nach vorne
1957 Leute haben es durchsucht

Ajax-Domänenübergreifende Lösung unter PHP – ausführliche Erläuterung der Beispielanalyse von window.name

Dieser Artikel beschreibt die domänenübergreifende window.name-Lösung für Ajax unter PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Grundprinzip: Das Namensattribut des Fensterobjekts ist ein ganz besonderes Attribut. Wenn sich die Position des Fensters ändert und dann neu geladen wird, kann sein Namensattribut unverändert bleiben .

Nach diesem Prinzip können wir Iframe auf Seite A verwenden, um Seite B anderer Domains zu laden, und JavaScript auf Seite B verwenden, um die Daten zuzuweisen, die an window.name übergeben werden müssen, nachdem der Iframe von Seite A geladen wurde , Seite A ändert die iframe-Adresse, ändert sie in eine Adresse in derselben Domäne und kann dann den Wert von window.name lesen.

Verwandte Lernempfehlungen: php-Programmierung(Video)

Beispiel: Es gibt zwei Websites www.a.com und www.b.com, wir möchten sie unter www.a.com/a herunterladen .html Rufen Sie www.b.com/data.html-Daten ab.

Wir benötigen drei Dateien:

a.html unter www.a.com, um Daten abzurufen und anzuzeigen
data.html unter www.b.com, um Daten bereitzustellen
proxy.html unter www.a.com Proxy-Datei, in derselben Domäne wie a.html, ist normalerweise eine leere HTML-Datei.

data.html unter www.b.com lautet wie folgt:

<!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>
Nach dem Login kopieren

proxy.html unter www.a.com lautet wie folgt:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Insert title here</title>
</head>
<body>
  <!-- 空的html文件 -->
</body>
</html>
Nach dem Login kopieren

a.html unter www.a.com lautet wie folgt:

<!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>
Nach dem Login kopieren

Empfehlung für entsprechende Videos: PHP-Programmierung vom Anfänger bis zum Meister

Das obige ist der detaillierte Inhalt vonAjax-Domänenübergreifende Lösung unter PHP – ausführliche Erläuterung der Beispielanalyse von window.name. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage