打破iframe,保留POST数据?

时间:2016-03-10 15:01:55

标签: javascript iframe

在付款过程中,我的网站上的iframe中有一个远程3DSecure表单。用户输入3D安全密码后,远程银行会将用户POST回到提供的URL(“termURL”)并显示结果。当然,这仍然存在于iframe中。

从银行收到邮件后,我想做的是检查我是否在iframe中,如果是,请退出。

检查window.self !== window.top会告诉我我是否在iframe中。寻找预期的POST值将告诉我我是否已从银行返回(或者使用银行的3DSecure结果回复给我自己)。接下来呢?

我猜 iframe中的页面需要使用目标_top重新发布自己。我是否需要使用自发布表单来完成,或者只能使用JavaScript来完成?

当iframe显示3DSecure表单时,我无法控制iframe的内容,所以当用户返回我的网站时,我无法让该远程站点在用户的浏览器中定位_top

1 个答案:

答案 0 :(得分:0)

您可以通过使用javascript检查window.self != window.top或以下内容,通过您建议的方式中断iframe:

<script>
  window.onload = function() {
    if (window.parent.document.getElementById('your-iframe-id')) {
      window.top.location.href = "https://the-url-to-continue";
    }
  }
</script>

当然这是GET的另一个the-url-to-continue,您需要确定客户已完成3D Secure的所有内容。那个东西可能是Session,还是一个cookie ......我推荐会议......