我有以下ajax电话:

$.ajax({
            type: "POST",
            url: urlToGetRules,
            data: { ruleName: ruleName},
        })
             .success(function (data) {
                 document.location.href = "/StudentRules/GetAllStudentRules?productId=test";
             })
             .fail(function (xhr) {
                 alert("Something went wrong!!!")
                 console.log(xhr.responseText);
             });


在我的控制器中,我正在DocDb中创建一个文档,如下所示:

[HttpPost]
public ActionResult UpsertDoc(string ruleName)
{
            StudentRule studentRule = new StudentRule() { Id = Guid.NewGuid().ToString(), StudentId = "test", Name = ruleName, RuleType = "Allow all updates", StartDate = DateTime.UtcNow.ToString() };
            _updateScheduleRulesManager.UpsertScheduleRule(studentRule);

            return Json(new { success = true });
}


想法是,一旦用户在“添加规则”页面中创建新规则,便返回到我列出所有规则的页面。

上面的代码执行正常,我可以在Docdb中看到所需的文档,但是在Developer Tools中此调用的状态显示为“待处理”!
成功中的代码永远不会执行。

有人可以在这里指导我吗?

提前致谢。

最佳答案

没有.success处理程序。


弃用通知:jqXHR.success(),jqXHR.error()和
从jQuery 1.8开始不推荐使用jqXHR.complete()回调。准备
您的代码要最终删除,请使用jqXHR.done(),jqXHR.fail(),
和jqXHR.always()代替。


您需要使用完成:

  $.ajax({
        type: "POST",
        url: '@Url.Action("UpsertDoc")',
        data: { ruleName: 'test'},
        }).done(function (data) {
            document.location.href = "/StudentRules/GetAllStudentRules?productId=test";
        }).fail(function (xhr) {
        alert("Something went wrong!!!")
        console.log(xhr.responseText);
        });


同时删除.done.fail之前的间距。

屏幕截图

关于jquery - Ajax调用永不返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30119271/

10-11 06:26