我有以下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/