Я пытаюсь создать функцию многократного использования, где я мог бы передать arg, и на основе этого выполнить вызов ajax. До сих пор это то, что я получил:Ajax return response
ajaxFunc: function(url, method, args) {
return {
var URL = url,
METHOD = method,
ARGS = args,
ERROR = error,
index = -1,
ajaxResponse,
AJAX = function() {
var url = URL + ((args == null) ? '' : ('/' + ARGS)),
data = (METHOD == 'post') ? ARGS[index] : undefined,
thisObject = this;
$.ajax({
url:url,
method:METHOD,
data: data,
dataType: 'json',
error: function(jqXHR, textStatus, error) {
console.error(jqXHR, textStatus, error)
},
success: function(response) {
ajaxResponse = response;
}
});
return ajaxResponse;
};
AJAX();
};
};
Моя проблема в том, как я могу получить return
работать? - когда я вызываю функцию, я вижу вызов get ajax, но функция никогда не возвращает ответ.
E.g: Если я делаю MAIN.util.ajaxFunc('http://url.com/', 'get', null);
, я ничего не получаю взамен. Я хотел бы найти способ, которым я мог бы позвонить ajaxFunc
, и после этого проверить ответ, если response.length
что-то сделать.
Что я делаю неправильно?
Ваш код завершается до того, как ajax получит ответ. – Marko
Используйте обратный вызов, как это делает jQuery, и все события JavaScript. Нет никакого хорошего способа превратить что-то по сути асинхронное синхронное, и ваши пользователи будут благодарить вас за то, что вы этого не сделали. – Ryan
'return {var URL = url' выглядит неправильно. –