javascript - 从 ajax.success() 调用 ajax.fail()

标签 javascript jquery ajax json

所以我想做的就是有条件地从 .success 方法中调用 .fail 方法,如何实现?

var ajaxCall = $.ajax({
    url: pUrl,
    type: "POST",
    data: pData,
    dataType: "json",
    processData: false,
    contentType: "application/json; charset=utf-8"
})
.always(function () {
    alert("always");
})
.success(function (data) {
    if (data == "fail") { ajaxCall.fail(); return; }
    alert("success");
})
.fail(function () {
    alert("fail");
});

最佳答案

$.ajax 返回一个 promise ,因此您不能直接执行它。你最好的选择是:

var fail = function () {
    alert("fail");
};

var ajaxCall = $.ajax({
    url: pUrl,
    type: "POST",
    data: pData,
    dataType: "json",
    processData: false,
    contentType: "application/json; charset=utf-8"
})
.always(function () {
    alert("always");
})
.success(function (data) {
    if (data == "fail") { fail(); return; }
    alert("success");
})
.fail(fail);

关于javascript - 从 ajax.success() 调用 ajax.fail(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273612/

相关文章:

javascript - 获取ajax请求

javascript - 使用 Javascript 的三级面板菜单,无法正确加载内容

javascript - 以 Angular/ ionic 方式刷新后退按钮上的页面

javascript - highcharts 一次性选择多个点

javascript - 当我在智能手机上显示页面时,将其添加到我的页面

javascript - 在浏览器重新加载/刷新/关闭警报,然后 ajax

用于按时间顺序显示和隐藏 div 的 JavaScript

jquery - Rails UJS (jQuery) 未连接数据远程链接

jquery - 在 jQuery 中显示和隐藏不同的元素

jquery - 如何修改 Stripe Checkout 以改为发送 AJAX 请求?