Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止Iframe重新加载父对象_Javascript_Html_Iframe - Fatal编程技术网

Javascript 防止Iframe重新加载父对象

Javascript 防止Iframe重新加载父对象,javascript,html,iframe,Javascript,Html,Iframe,我有一个带有标准iframe标记的页面 框架内部链接到Https URL iframe进行一些处理(支付信息等) 然后返回POST数据当处理大部分时间失败时,它不会重新加载父页面(返回url,加上该url的POST数据,在Iframe内加载),当处理付款返回成功时,大部分时间它会完全重新加载父页面(返回url,并将数据发布到成功的url,将父url重新加载到该url) 因为这是来自安全支付的代码,所以我没有很多东西可以展示 是否有任何javascript或Html attr可以在没有随机性的情况

我有一个带有标准iframe标记的页面

框架内部链接到Https URL iframe进行一些处理(支付信息等)

然后
返回POST数据
当处理大部分时间失败时,它不会重新加载父页面(
返回url,加上该url的POST数据,在Iframe
内加载),当处理付款返回成功时,大部分时间它会完全重新加载父页面(
返回url,并将数据发布到成功的url,将父url重新加载到该url

因为这是来自安全支付的代码,所以我没有很多东西可以展示


是否有任何javascript或Html attr可以在没有随机性的情况下实现此功能?如果它只在成功尝试时重定向,而不是每次都重定向,那么它很可能是从服务器重定向的(例如,使用重定向头或window.refresh),那么您必须在那里修复代码(如果您可以控制它)

如果您无法控制iframe来自的服务器端代码,请向API所有者寻求帮助。如果他们拒绝(他们很可能会这样做)应用您需要的更改,可能是出于安全考虑(如果用户的事务正在另一台服务器上处理,为什么该页面托管在您页面中的iframe中?请阅读点击劫持


无论哪种方式,我都会使用fiddler或您能想到的任何其他工具来检查成功响应的内容,以验证服务器端代码是否正在重定向。

如果它只在成功尝试时重定向,而不是每次都重定向,那么它很可能从服务器重定向(例如,使用重定向头或窗口。刷新)然后,您必须在那里修复代码(如果您可以控制它的话)

如果您无法控制iframe来自的服务器端代码,请向API所有者寻求帮助。如果他们拒绝(他们很可能会这样做)应用您需要的更改,可能是出于安全考虑(如果用户的事务正在另一台服务器上处理,为什么该页面托管在您页面中的iframe中?请阅读点击劫持


无论哪种方式,我都会使用fiddler或您能想到的任何其他工具来检查成功响应的内容,以验证服务器端代码是否正在重定向。

最终对iframe使用沙盒模式,并强制至少对现代浏览器停止重定向

sandbox=”“
不带
允许顶部导航
将强制阻止重新加载


最终对iframe使用沙盒模式,并强制至少停止对现代浏览器的重定向

sandbox=”“
不带
允许顶部导航
将强制阻止重新加载


您当初选择使用iFrame有什么具体原因吗?为什么不改用ajax呢?@Jason:因为iFrame可能比ajax安全得多?这是一个hostedpay页面@Jason,这是我开发它之前它是如何出现的。@vico:行为还是重新加载(或不加载)取决于服务器返回的HTML标记。您可以尝试对iframe进行沙箱处理或在框架页面上使用CSP。顺便说一句,如果您的父页面也不是HTTPS,则可能会导致用户不信任。您选择使用iframe的首要原因是什么?为什么不改用ajax?@Jason:因为iframes可以d比ajax安全多了?这是一个hostedpay页面@Jason,这是我开发它之前它是如何出现的。@vico:行为还是重新加载(或不加载)取决于服务器返回的HTML标记。您可以尝试对iframe进行沙箱处理,或在框架页面上使用CSP。另一方面,如果您的父页面也不是HTTPS,则可能会导致用户产生一些不信任。