淘汰赛-点击绑定成功ajax发布后,重定向到另一个页面

时间:2018-10-17 15:57:30

标签: ajax knockout.js

我在通过ajax请求发布到服务器后将用户重定向到另一个页面时遇到了问题,我尝试返回true以允许使用默认的点击操作,但这是我不知道的问题当我的ajax请求即将完成并且由于异步而使其成功或失败时,浏览器可能会在保存数据之前重定向用户。

更新#1 更清楚地说,我的问题是完整回调函数上的window.location.replace(url GoTo)行,我没有被重定向到任何地方,代码在此行之前工作正常,在运行时没有任何错误。另外,如果我调试代码,则它按预期的方式工作,只是重定向指令完全忽略了它。

我的点击功能如下:

self.save = function (viewmodel, event) {
        var data = ko.toJSON(self);
        $.ajax({
            type: "POST",
            dataType: "JSON",
            url: "/Titulo/Create/",
            contentType: "application/json",
            data: data,
            beforeSend: function () {
                $("#messageContainer").html('<p><span class="fas fa-spinner fa-pulse"></span> Guardando...</p>');
            },
            success: function (data) {
                if (data.Success) {
                    $("#messageContainer").html('<p><span class="fas fa-spinner fa-pulse"></span>¡Guardado con exito!</p>');
                } else {
                    $("#messageContainer").html('<p><span class="fas fa-spinner fa-pulse"></span>¡Ha ocurrido un problema al procesar esta operación!</p>');
                }
            },
            error: function (request, textStatus, errorThrown) {
                $("#messageContainer").html('<p><span class="fas fa-spinner fa-pulse"></span>¡Ha ocurrido un problema al procesar esta operación!</p>');
            },
            complete: function (request, textStatus) {
                if (textStatus === "success") {
                    var host = window.location.host;
                    var urlToGo = host + "/Titulo/Index/";
                    window.location.replace(urlToGo);
                }
            }
        });
    }

希望有人可以帮助我,或者至少给我一个主意。

0 个答案:

没有答案