синтаксис для возврата json к вызывающей функции из jquery .ajax - PullRequest
0 голосов
/ 06 марта 2012

может быть, это не может быть сделано, или, может быть, я просто не могу его найти, так или иначе, я новичок в jquery, и это сводит меня с ума. Я хочу принять возврат от вызова ajax в вызывающей функции, предпочтительно объект JSON. Я явно ищу способ обработки ответа вне функций успешного / полного обратного вызова. Может кто-нибудь дать мне правильный синтаксис для этого? Псевдокод похож на

SomeFunction()
{
    var JSON_Containter = .ajax({stuff...});

    DO other stuff with JSON response...
}

Большое спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Единственный способ не использовать функции обратного вызова - сделать запрос AJAX синхронным , чтобы код ожидал его завершения:

var responseObj;

$.ajax({ 
    ..., 
    async: false, 
    success: function(data) { responseObj = data; }});

// Do stuff with responseObj

Я бы не рекомендовал делатьвсе так.Вы не хотите, чтобы пользовательский интерфейс зависал во время ожидания ответа AJAX.Вот лучший подход:

function SomeFunction(successCallback, errorCallback) {
    $.ajax({
        ..., 
        success: successCallback,
        error: errorCallback
    });
}
0 голосов
/ 06 марта 2012

Вы можете использовать jQuery.getJSON(), но вам все равно нужно будет использовать обратный вызов успеха, потому что AJAX работает - A означает «асинхронный», в конце концов.

Но не забывайте, что внутри этого успешного обратного вызова у вас также есть доступ к переменным из родительской области видимости, поэтому вы должны иметь возможность делать то, что вам нужно в этом обратном вызове.

...