jQuery: правильное выполнение синхронных запросов - PullRequest
2 голосов
/ 03 ноября 2011

Хорошо, поэтому мне нужно открыть диалоговое окно (jQuery UI) перед выполнением фактического запроса AJAX и, в зависимости от того, что выберет пользователь, продолжить выполнение запроса AJAX или просто ничего не делать.

К сожалению, функция кажетсячтобы вернуться рано и полностью игнорирует синхронный запрос.Что я делаю не так?

Вот код:

function saveSomeStuff(value) {
    var returnvalue = this.revert;

    $("#dialog").dialog({
        draggable: false,
        buttons: {
            "OK": function() {
                $(this).dialog("close");
                returnvalue = $.ajax({
                    type: "POST",
                    url: config.someUrl,
                    async: false,
                    data : {/* some data */}
                }).responseText;
            },
            "Cancel": function() {
                $(this).dialog("close");
            }
        }
    }); 

    return returnvalue;

 }

1 Ответ

2 голосов
/ 03 ноября 2011
$.ajax({
        type: "POST",
        url: config.someUrl,
        async: true,
        data : {/* some data */},
        success : function (data) { *YOUR LOGIC HERE*}
})

P.S. Избегайте синхронных запросов везде.

...