>백엔드 개발 >PHP 튜토리얼 >PHP 기반 Ajax 크로스 도메인 솔루션 - window.name 예제 분석 자세한 설명

PHP 기반 Ajax 크로스 도메인 솔루션 - window.name 예제 분석 자세한 설명

coldplay.xixi
coldplay.xixi앞으로
2020-08-05 16:55:121990검색

PHP 기반 Ajax 크로스 도메인 솔루션 - window.name 예제 분석 자세한 설명

이 문서에서는 PHP에서 ajax용 window.name 크로스 도메인 솔루션을 설명합니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

핵심 원칙: 창 개체의 이름 속성은 창 위치가 변경된 후 다시 로드될 때 이름 속성이 변경되지 않고 그대로 유지될 수 있습니다. .

이 원칙에 따라 페이지 A의 iframe을 사용하여 다른 도메인의 페이지 B를 로드하고, 페이지 B의 JavaScript를 사용하여 window.name에 전달할 데이터를 할당할 수 있습니다. 페이지 A의 iframe이 로드된 후 페이지. A는 iframe 주소를 수정하여 동일한 도메인의 주소로 변경한 후 window.name의 값을 읽을 수 있습니다.

관련 학습 권장사항: php 프로그래밍(동영상)

예: www.a.com과 www.b.com이라는 두 개의 웹사이트가 있는데, www.a.com/a에서 다운로드하고 싶습니다. .html www.b.com/data.html 데이터를 가져옵니다.

세 개의 파일이 필요합니다. 데이터를 가져오고 표시하려면 www.a.com 아래의

a.html 데이터를 제공하려면 www.b.com 아래의
data.html www.a.com 프록시 파일 아래의
proxy.html a.html과 동일한 도메인에 있는 경우 일반적으로 빈 HTML 파일입니다. www.b.com의

data.html은 다음과 같습니다. www.a.com의

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

proxy.html은 다음과 같습니다. www.a.com의

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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제