Условно добавив опцию в вызов jQuery Ajax - PullRequest
3 голосов
/ 02 сентября 2011

У меня есть следующий рабочий вызов 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-вызова. Например, добавив data: sendRequest перед выполнением запроса Ajax.

Моя проблема: я не могу найти пример синтаксиса, как это сделать без полного дублирования всей функции.

1 Ответ

11 голосов
/ 02 сентября 2011

насчёт троичной операции:

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

Если вам это не по вкусу, некоторые люди, похоже, забывают, что $ .ajax не принимает длинную группу параметров, а создает объект:

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

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

$.ajax(ajax);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...