繁体   English   中英

如何防止用户取消页面重定向?

[英]How do you prevent a user from cancelling a page redirect?

我有一行代码:

location.href = 'payments/basic.php';

它工作正常,但用户只需按 Esc 键即可取消操作。 我尝试使用事件侦听器来防止按下 Esc 键,但它仅在用户位于初始页面时才有效。 一旦他们被重定向,它就会停止工作,他们可以快速按 Esc 键或浏览器地址栏旁边的大 X 来取消重定向。

有没有办法可以完全防止这种情况?

编辑:我想这样做的原因是登录后,它们会自动发送到索引页面。 我的数据库中有一个标志,用于检查用户是否已付款。 然后在索引页面上,我有一个小脚本查询数据库以检查标志是真还是假。 如果它是假的,他们会立即被通知他们正在被重定向以进行付款。 如果在重定向的这一点,他们取消,他们将能够留在索引页面上而无需付款。

我认为防止 Esc 键停止导航的唯一方法是根本不离开原始页面。 而不是做

location.href = 'payments/basic.php';

basic.php发出 XHR 或 fetch 请求,并用结果填充当前文档,而不是加载全新的文档 - 就像SPA的工作方式一样。

(您几乎肯定会想要对basic.php进行一些更改 - 例如,让它返回易于解析的 JSON 包含用于填充页面的数据而不是 Z4C4AD5FCA2E7A3F74DBB1CED00381AA4 文档)

关于编辑

登录后,它们会自动发送到索引页面

如果在重定向的这一点,他们取消,他们将能够留在索引页面上而无需付款。

如果您试图阻止访问原始页面,那么在您检查数据库中的标志之前不要提供原始页面。 在您验证用户的凭据之前,不要一开始就提供索引页面。 如果他们没有被授权,请在 PHP (不是在 JS 中)中将他们重定向到支付页面。 无需弄乱用户的转义键。

为什么不反过来呢? 默认为支付页面,如果已经支付,则重定向到 index.html。 哈哈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM