校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > PHP下ajax跨域的解決方案之window.name實(shí)例分析

PHP下ajax跨域的解決方案之window.name實(shí)例分析

熱門(mén)標(biāo)簽:嘟嘟云外呼系統(tǒng) 南寧電話(huà)外呼系統(tǒng)線(xiàn)路 辦理400電話(huà)哪家好點(diǎn) 邢臺(tái)400電話(huà)辦理 正規(guī)電銷(xiāo)機(jī)器人系統(tǒng) 重慶外呼電銷(xiāo)系統(tǒng)多少錢(qián) 咸陽(yáng)電銷(xiāo) 濟(jì)源百應(yīng)電銷(xiāo)機(jī)器人聯(lián)系方式 南京3D地圖標(biāo)注

本文實(shí)例講述了PHP下ajax跨域的解決方案之window.name。分享給大家供大家參考,具體如下:

原理核心:window對(duì)象的name屬性是一個(gè)很特別的屬性,當(dāng)該window的location變化,然后重新加載,它的name屬性可以依然保持不變。

依此原理,我們可以在頁(yè)面A中用iframe加載其他域的頁(yè)面B,而頁(yè)面B中用JavaScript把需要傳遞的數(shù)據(jù)賦值給 window.name,頁(yè)面A的iframe加載完成之后,頁(yè)面A修改iframe的地址,將其變成同域的一個(gè)地址,然后就可以讀出window.name的值了。

例:有兩個(gè)網(wǎng)站www.a.com和www.b.com,我們要在www.a.com/a.html下獲取www.b.com/data.html數(shù)據(jù)。

我們需要三個(gè)文件:

www.a.com 下的 a.html 獲取數(shù)據(jù)并顯示
www.b.com 下的data.html 提供數(shù)據(jù)
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">
    //添加需要傳遞的數(shù)據(jù),大小一般為2M,IE和firefox下可以大至32M左右
    window.name = '[{"name":"test1"},{"name":"test2"}]';
  /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>
 
!-- 顯示獲取到的數(shù)據(jù) -->
div id="data">/div>
 
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);
    });
     
    //銷(xiāo)毀iframe,保證安全
    ifr.contentWindow.document.write("");
    ifr.contentWindow.close();
    document.body.removeChild(ifr);
  }
}
/script>
/body>
/html>

更多關(guān)于PHP相關(guān)內(nèi)容可查看本站專(zhuān)題:《PHP+ajax技巧與應(yīng)用小結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • ThinkPHP 5 AJAX跨域請(qǐng)求頭設(shè)置實(shí)現(xiàn)過(guò)程解析
  • PHP Ajax跨域問(wèn)題解決方案代碼實(shí)例
  • 原生js實(shí)現(xiàn)ajax請(qǐng)求和JSONP跨域請(qǐng)求操作示例
  • PHP下ajax跨域的解決方案之jsonp實(shí)例分析
  • 使用ajax跨域調(diào)用springboot框架的api傳輸文件
  • express如何解決ajax跨域訪問(wèn)session失效問(wèn)題詳解
  • Ajax跨域問(wèn)題及解決方案(jsonp,cors)
  • Ajax解決跨域之設(shè)置CORS響應(yīng)頭實(shí)現(xiàn)跨域案例詳解

標(biāo)簽:武漢 河南 通遼 南通 平頂山 唐山 黃山 隴南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP下ajax跨域的解決方案之window.name實(shí)例分析》,本文關(guān)鍵詞  PHP,下,ajax,跨域,的,解決方案,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP下ajax跨域的解決方案之window.name實(shí)例分析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PHP下ajax跨域的解決方案之window.name實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 陆丰市| 灵台县| 凤台县| 曲周县| 蒙山县| 包头市| 电白县| 长泰县| 澜沧| 杭锦后旗| 淮滨县| 车险| 安溪县| 上栗县| 建昌县| 吴忠市| 施甸县| 通化市| 望奎县| 新河县| 沁阳市| 冕宁县| 徐州市| 大安市| 金山区| 兖州市| 双峰县| 法库县| 湘潭市| 鲁山县| 开阳县| 济阳县| 浑源县| 滦南县| 蓬溪县| 青海省| 南郑县| 嘉禾县| 红桥区| 麟游县| 曲阜市|