响应函数有时不适用于.ajaxSubmit()

时间:2018-02-27 05:39:53

标签: jquery html-form ajaxsubmit

我已调用.ajaxSubmit()来提交数据,并在成功保存数据后,在服务器响应后,我使用JavaScript将用户重定向到下一页。问题是这个重定向大多数时间都有效,但是只有5到10%的时间,它只是将服务器响应显示为浏览器中的文本,而不是将用户重定向到下一页。

更新开始

我刚才注意到的一件奇怪的事情是该页面也被重定向到使用.ajaxSubmit()提交的表单的URL,这意味着浏览器中显示的服务器响应的格式为action。< / p>

更新结束

请指导这里做错了什么,为什么会出现这种随机行为?

以下是我正在使用的代码:

$(document).ready(function () {

    function showResponse(data) {
        if (data.success == false) {
            alert(data.message);
        }
        else {
            var redirect = data.redirect_to;
            window.location.replace(redirect);
        }
    }

    var options = {
        success: showResponse, // post-submit callback
        dataType: 'json'
    };

    // bind to the form's submit event
    $('#signupForm, #mobileSignupForm').submit(function (e) {
        // inside event callbacks 'this' is the DOM element so we first
        // wrap it in a jQuery object and then invoke ajaxSubmit
        $(this).ajaxSubmit(options);

        e.preventDefault();

        // !!! Important !!!
        // always return false to prevent standard browser submit and page navigation
        return false;

    });
});

1 个答案:

答案 0 :(得分:0)

很可能在服务器端,你没有在这5-10%的时间内获得正确的格式响应。尝试调试和检查。