有条件地为jQuery Ajax调用添加选项

时间:2011-09-02 18:51:38

标签: javascript jquery ajax jquery-plugins

我有以下工作Ajax调用 -

    $.ajax({
        url: ajaxUrl,
        type: sendHttpVerb,
        dataType: 'json',
        processData: false,
        contentType: 'application/json; charset=utf-8',
        complete: function () {
            setTimeout($.unblockUI, 2000);
        },
        success: function (response, status, xml) {
            clearTimeout(delayLoadingMsg);
            $.unblockUI();
            callbackFunction(response);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            clearTimeout(delayLoadingMsg);
            $.unblockUI();
            dcfForm.ajaxErrorDisplay(jqXHR, textStatus, errorThrown)
        }
    });

我的问题是我在调用Ajax调用时有条件地想要添加一个选项。例如,在发出Ajax请求之前添加data: sendRequest

我的问题我找不到关于如何在不完全复制整个函数的情况下执行此操作的语法示例。

1 个答案:

答案 0 :(得分:11)

三元操作怎么样:

$.ajax({
     data: condition ? sendRequest : undefined,
     ... the rest
});

如果这不是你的口味,有些人似乎忘了$ .ajax不需要一长串的参数,而是一个对象:

var ajax = {};
ajax.success = function (data) { ... };
ajax.type = 'GET';

if (myCondition) {
    ajax.data = sendRequest;
}

$.ajax(ajax);