JavaScript跨域问题的解决方案

摘要:
这里我画了一个简单的图来说明:图形描述:page1来自系统a,page2与iframe是相同的系统B。aspx;IFrame。aspx包含IFrame1和IFrame2;IFrame1是页面引用page1,IFrame2是页面引用page2;要实现的功能是单击IFrame1的按钮以刷新IFrame2的文本框。CDATA[document.domain=“gaigai.com”;//]]˃,还可以在iframe.aspx中添加以前的内容,

  JS跨域问题在系统与系统的交互过程中会经常出现,比如一个系统的某个页面引用了另外一个系统中页面的内容,并通过引用页面的功能来刷新父页面或者另外的一个页面。这些交互就会出现跨域问题了。

  下面我画了一个简单的图来说明:

JavaScript跨域问题的解决方案第1张
图文描述:
  1. page1的来源是一个A系统,page2是和iframe.aspx是同一个系统B;
  2. iframe.aspx中包含IFrame1和IFrame2;
  3. IFrame1是引用page1的页面,IFrame2是引用page2的页面;
  4. 需要实现的功能就是点击IFrame1的Button来刷新IFrame2的文本框。 

下面是自己的一些方案,如果你有什么建议可以大家一起讨论:

  1. 使用代理
    1. 在 系统B中建立一个页面,里面包括用来刷新IFrame2的JS脚本,脚本有点特 殊:window.parent.parent.document.getElementById("IFrame2").src="http://t.zoukankan.com/page2.aspx"; 该文件命名为:iframeProxy.aspx
    2. 在系统A的page1.aspx中引用iframeProxy.aspx;
    3. 这样,调用的JS与A系统就是在同一个域下面的了;
  2. 统一域名
    1. 修改域名,在C:\WINDOWS\system32\drivers\etc\hosts文件中修改,把系统A的访问地址设置为:a.gaizai.com,把B系统的访问地址修改为b.gaizai.com;
    2. 在A系统的页面page1.aspx的head标签内加入<script language="javascript" type="text/javascript">
          // <!CDATA[       
                  document.domain="gaizai.com";
          // ]]>
          </script>,在iframe.aspx中也同样加入前面的内容,

免责声明:文章转载自《JavaScript跨域问题的解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇x-www-form-urlencoded和multipart/form-data的区别CSRF攻击实验 ——合天网安实验室学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

你不知道的前端js面试题

1、为什么要尽量少使用iframe? Iframes 阻塞页面加载 及时触发 window 的 onload 事件是非常重要的。onload 事件触发使浏览器的 “忙” 指示器停止,告诉用户当前网页已经加载完毕。当 onload 事件加载延迟后,它给用户的感觉就是这个网页非常慢。 window 的 onload 事件需要在所有 iframe 加载完毕后(包...

Google的Web性能优化新方法——Diffable

来源于InfoQ: Google Maps的开发人员Josh和James最近提出并实现了一种Web性能优化新方法——Diffable, 即在浏览器加载Web页面时,促使其比较相关文件(Html、JavaScript等)在服务器端和客户端缓存区的版本并只下载差量(Deltas),降 低网络下载造成的延迟。本文简要介绍了Diffable方法的背景、原理、优势和...

WebGL 内嵌网页的一种解决方案

  之前使用的 ZFBrowser 嵌入方案可以发布到 Win, OS, Linux 上, 可是其它的就不行, 因为它用的谷歌内核嘛, 在 WebGL 上照理来说应该是最方便的啊, 因为它本身就是运行在浏览器内核上的, 前面的 BrowserInput 已经研究过向网页注入代码以及调用了, 现在试试在 WebGL 环境下来注入代码, 来创建简单的内嵌网页看...

js获取iframe的parent对象

使用谷歌浏览器调试代码时无意间发现了一个奇特的问题:从iframe页面调用父级页面的方法,window.parent.text(),出现 Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports mu...

jsp弹出新窗口代码

1、最基本的弹出窗口代码其实代码非常简单:  <SCRIPT LANGUAGE="javascript">   <!--   window.open (page.html); --> </SCRIPT>     因为这是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="j...

Web前端测试要点

Web前端测试维度: 功能性:功能准确性、兼容性 易用性:易学性、易理解性、易操作性、吸引性 可靠性:成熟性、容错性、稳定性、可恢复性、安全性 可移植性:适应性、易安装性、兼容性 可维护性:易分析性、易测试性 效率:时间特性、资源利用性 调优点: 1. 减少http请求的数量 2. 用好浏览器缓存机制 3. 利用GZIP压缩机制:只针对文本类资源有效...