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

问题描述 投票:0回答:1

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

更新开始

我刚才注意到的一个奇怪的事情是该页面也被重定向到使用.ajaxSubmit()提交的表单的URL意味着浏览器中显示的服务器响应具有action形式的URL。

更新结束

请指导这里做错了什么,为什么这个随机行为?

以下是我使用的代码:

$(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;

    });
});
jquery html-form ajaxsubmit
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.