是否可以使用Javascript通过Location:标头停止浏览器重定向

时间:2011-10-07 06:03:22

标签: javascript jquery redirect

我有一个由PHP处理的表单,通过使用Location:标题将访问者重定向到第三方支付系统。表单处理很快,但是当涉及到支付系统(Paypal)时,建立HTTPS连接并完成重定向需要3-5秒。

我正在尝试通过显示带有“请稍候”消息的弹出窗口(JQuery Colorbox插件)来改善访问者体验,如下所示:

$('a.submit').click(function(event) {
    event.preventDefault();
    $(this).colorbox({
        href: '#order_redirect',
        title: 'Sending data to a payment system',
        inline: true,
        fixed: true
    });
    $(this).closest('form').submit();
});

Colorbox的默认行为是您可以按Esc并关闭弹出窗口。我想让用户这样做,并通过回调函数停止重定向(Javascript一直在继续工作)。可能吗?浏览器实际收到标题后可能是几秒钟。

2 个答案:

答案 0 :(得分:0)

我很难测试这是否会停止重定向,但应该是一个好的开始。

$('a.submit').click(function(event) {
    event.preventDefault();
    $(this).colorbox({
        href: '#order_redirect',
        title: 'Sending data to a payment system',
        inline: true,
        fixed: true,
        onClosed:function() {
            history.go(-1);
        }
    });
    $(this).closest('form').submit();
});

答案 1 :(得分:0)

  

通过回调函数停止重定向

我不认为这是可能的。您能够做的最好的事情是将位置更改回当前页面或使用location.reload()。但是,如果您通过ajax提交表单,则可以中止它:

Abort Ajax requests using jQuery