在付款过程中,我的网站上的iframe中有一个远程3DSecure表单。用户输入3D安全密码后,远程银行会将用户POST回到提供的URL(“termURL”)并显示结果。当然,这仍然存在于iframe中。
从银行收到邮件后,我想做的是检查我是否在iframe中,如果是,请退出。
检查window.self !== window.top
会告诉我我是否在iframe中。寻找预期的POST值将告诉我我是否已从银行返回(或者使用银行的3DSecure结果回复给我自己)。接下来呢?
我猜 iframe中的页面需要使用目标_top
重新发布自己。我是否需要使用自发布表单来完成,或者只能使用JavaScript来完成?
当iframe显示3DSecure表单时,我无法控制iframe的内容,所以当用户返回我的网站时,我无法让该远程站点在用户的浏览器中定位_top
。
答案 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 ......我推荐会议......