Могу ли я использовать переменную в вызове ошибки ajax вместо имени функции? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть вызов Ajax, который работает нормально, но я сейчас пытаюсь немного отшлифовать код

                $.ajax({
                url: wbURL,
                dataType: "xml",
                contentType: "text/xml; charset=\"utf-8\"",
                type: "POST",
                headers: '@"HEADER DATA',
                data: dataPacket,

                success: dealWithResonse,

                error: dealWithError
            });

, что я сейчас пытаюсь сделать, это заменить имена функций success и error на переменные так,Я могу использовать его для других заданий.

var SuccessFunctionCall =  dealWithResonse;                      
var ErrorFunctionCall = dealWithError;

                $.ajax({
                url: wbURL,
                dataType: "xml",
                contentType: "text/xml; charset=\"utf-8\"",
                type: "POST",
                headers: '@"HEADER DATA',
                data: dataPacket,

                success: SuccessFunctionCall,

                error: ErrorFunctionCall
            });

Но моя программа останавливается на этом этапе, предположительно, поскольку она не может найти функцию с именем ErrorFunctionCall.

Могу ли я вместо этого использовать переменную vauleфактического имени функции?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы должны определить эти функции в ваших переменных, как показано ниже:

$(document).ready(function(){
  var SuccessFunctionCall =  function dealWithResonse(){
  console.log("success");
};                      
var ErrorFunctionCall = function dealWithError(){
  console.log("error");
};

  $.ajax({
    url: 'http:test',
    dataType: "xml",
    contentType: "text/xml; charset=\"utf-8\"",
    type: "POST",
    headers: '@"HEADER DATA',
    data: '',

    success: SuccessFunctionCall,

    error: ErrorFunctionCall
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
Попробуйте это
0 голосов
/ 27 сентября 2018

Вы можете определить эти функции как глобальные и назначить их тем, что вы хотите:

var SuccessFunctionCall = function(){dealWithResonse()};
var ErrorFunctionCall = function(){dealWithError()};

и вызвать их как члены окна:

success: window[SuccessFunctionCall](),
error: window[ErrorFunctionCall]()

Наконец, я должен сказать, чтоЯ не уверен, почему вы хотите назначить функции именам переменных.Вы можете определить эти функции напрямую и вызывать их по мере необходимости.

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