Как вызвать функцию успеха с переменной в $. ajax call - PullRequest
1 голос
/ 23 марта 2020

В Javascript как бы я сделать что-то вроде этой работы:

function callAjax (url, successCallback, errorCallback)
{
  var ajaxProps = {
    url: url,
    success: successCallback,
    error: errorCallback
  }
  return $.ajax(ajaxProps);
}

Я получаю ошибки, или они не определены, как бы я ни пытался это сделать. Я пытаюсь медленно вырвать вещи из объекта бога. Таким образом, обычно вызов ajax выполняется для parent.specificSuccess, поскольку он находится внутри этого объекта. Я также пытался использовать godObject [successCallback] и global [namespace] .godObject [successCallback]. Я также попробовал все три варианта:

function callAjax (url, successCallback, errorCallback)
{
  var ajaxProps = {
    url: url,
    success: function (response) {
      successCallback(response);
    },
    error: function (response) {
      errorCallback(response);
    }
  }
  return $.ajax(ajaxProps);
}

Он вызывается изнутри объекта бога с помощью:

callAjax('https://url.com', specificSuccess, specificError);

Я перепробовал все три варианта, перечисленных выше, и также использовал «parent» перед ним.

Я знаю, что я что-то упустил, Я никогда не сталкивался с тем, что меня просили сделать что-то подобное раньше. Похоже, я должен быть в состоянии вызвать метод в обратном вызове, используя переменную с именем метода ... но Google не удалось мне в этом.

1 Ответ

0 голосов
/ 23 марта 2020

У меня есть пример. Это прекрасно работает для меня. Вы можете сохранить этот код в виде файла. js и обратиться к нему на своей веб-странице. Вы вызываете метод ajax следующим образом: backend. ajax .AjaxPOST (), передающий параметры. По желанию вы можете иметь Загрузка.

backend.ajax = {

AjaxPOST: function (url, data, dataType, callBackSucess, callBackError, loadig) {
    $.ajax({
        type: "POST",
        url: url,
        data: data,
        dataType: dataType,
        success: function (e) {
            if (callBackSucess != null)
                callBackSucess(e);
        },
        beforeSend: function (e) {
            if (loadig == true)
                startLoadingAjax();
        },
        complete: function (e) {
            if (loadig == true)
                endLoadingAjax();
        }
    });
},

AjaxGET: function (url, dataType, callBackSucess, callBackError, loadig) {
    $.ajax({
        type: "GET",
        url: url,
        dataType: dataType,
        success: function (e) {
            if (callBackSucess != null)
                callBackSucess(e);
        },
        error: function (e) {
            if (callBackError != null)
                callBackError(e);
        },
        beforeSend: function (e) {
            if (loadig == true)
                startLoadingAjax();
        },
        complete: function (e) {
            if (loadig == true)
                endLoadingAjax();
        }
    });
}};


var divLoading = "<div id=\"Loading\" style=\"display: none; position: fixed; z-index: 1000; top: 0;left: 0; height: 100%;width: 100%;background: rgba( 255, 255, 255, .8 ) url('http://i.stack.imgur.com/FhHRx.gif') 50% 50% no-repeat;display:block;\"></div>";

function startLoadingAjax() {
$("body").append(divLoading);}

function endLoadingAjax() {
$("#Loading").remove();}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...