ホームページ  >  記事  >  バックエンド開発  >  PHP での Ajax クロスドメイン ソリューション - window.name の分析例の詳細な説明

PHP での Ajax クロスドメイン ソリューション - window.name の分析例の詳細な説明

coldplay.xixi
coldplay.xixi転載
2020-08-05 16:55:121952ブラウズ

PHP での Ajax クロスドメイン ソリューション - window.name の分析例の詳細な説明

この記事の例では、PHP での window.name ajax クロスドメイン ソリューションについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

基本原則: ウィンドウ オブジェクトの name 属性は非常に特殊な属性です。ウィンドウの位置が変更されて再ロードされると、その名前は変わります。属性は変更しないままにすることができます。

この原則に従って、ページ A で iframe を使用して他のドメインのページ B をロードし、ページ B で JavaScript を使用して、渡す必要があるデータを window.name に割り当てることができます。ページ A がロードされ、ページ A が iframe のアドレスを変更して同じドメイン内のアドレスに変更すると、window.name の値を読み取ることができます。

関連する学習に関する推奨事項: php プログラミング (ビデオ)

例: 2 つの Web サイト www.a.com があります。 www.b.com の場合、www.a.com/a.html の下にある www.b.com/data.html データを取得したいと考えています。

3 つのファイルが必要です。データを取得するには www.a.com の

a.html、データを提供するには www.b.com の
data.html を表示します。
www.a.com にある proxy.html プロキシ ファイルは、a.html と同じドメイン内にあり、通常は空の HTML ファイルです。

www.b.com の data.html は次のとおりです:

<!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>

www.a.com の proxy.html は次のとおりです:

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

www.a .com の下の a.html は次のとおりです。

<!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>

関連ビデオの推奨事項: PHP プログラミングの入門から熟練度まで

以上がPHP での Ajax クロスドメイン ソリューション - window.name の分析例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。