Javascript/Ajax重定向问题

Javascript / Ajax Redirect Issues

本文关键字:问题 重定向 Ajax Javascript      更新时间:2024-07-02

一般来说,这是一个非常新的代码,所以如果我没有正确解释自己,请提前道歉,

但我有一个表单,它在提交时操作一段JavaScript。

如果表单验证成功,那么它会调用一个php文件进行服务器端处理。

一旦服务器端处理完成,php文件将返回一些数据(url),然后将用户重定向到(客户端)

这一切在台式机(chrome、IE、FF)和现代移动设备上都能很好地工作,但重定向在某些设备上不起作用(比如黑莓),我认为其他旧设备也不起作用。重定向URL不是直接进入地址栏,而是放在原始页面的URL之后——这样会导致用户被重定向到一个当然不存在的页面。

以下是提交时调用的脚本。再次道歉,如果以上都没有意义。。。我对这一切都很陌生:

$(function () {
    $('#wait').hide();
    $('form#leads_form').on('submit', function (e) {
        if (validateFrm()) {
            $(":submit", this).attr("disabled", true);
            $('#wait').show();
            var jqxhr = $.ajax({
                type: 'post',
                timeout: 300000,
                url: 'sell-save-leads.php',
                cache: false,
                data: $('form').serialize(),
                success: function (data) {
                    //alert("Submit success: " + data);
                    window.top.location.href = data;
                }
            });
        } else {
            //alert("validation errors");
            $('#wait').hide();
        }
        e.preventDefault();
    });
});

如果有人能够提供帮助或建议,那就太好了。

由于表单位于iFrame中,我建议您使用此jQuery插件将消息从iFrame发送到其父级:http://benalman.com/projects/jquery-postmessage-plugin/

这样,您就可以从success函数内部发送一条包含新url的消息,并在父window中捕获它。

您也可以使用

 window.top.location.assign(data);

参考编号:https://developer.mozilla.org/en-US/docs/Web/API/Window.location