s yu Ответов: 1

Как получить возвращаемое значение AJAX post?


У меня есть функция AJAX для публикации для обработки данных в файле.ashx.
var b = false;
$.ajax({
    async: true,
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    dataType: 'json',
    data: JSON.stringify(arrays),
    url: "MyHandler.ashx",
    success: function (result) {
        b = true;
    },
    error: function () {
        alert('Error occurred');
    }
});

Я хочу установить значение b после его успешного запуска. Я устанавливаю точку останова в b = true; если она работает успешно. Но программа работает без остановки в точке останова. Это означает, что на самом деле я не получил почтового возврата. Что не так в моем коде? Спасибо.

Что я уже пробовал:

How to get AJAX Post return value?

Karthik_Mahalingam

проверьте окно консоли на наличие любого сообщения об ошибке на вкладке Сеть.

ZurdoDev

"Но программа работает с остановкой в точке останова" - вы имеете в виду без?

Поместите точку останова в функцию успеха и одну в функцию ошибки. Также поставьте один на $. ajax( и убедитесь, что он даже туда попадает. Он должен куда-то идти.

s yu

Да для "Без". Извините за то, что я промахнулся. Спасибо

1 Ответов

Рейтинг:
1

F-ES Sitecore

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

success: function (result) {
        b = true;
        process(b);
    },


function process(result){
if (result){
    //
}
}


Ваш ajax-вызов асинхронен, поэтому ваш код не останавливается на строке$. ajax, а продолжает работу с кодом после завершения ajax-вызова в фоновом режиме. Более дешевая альтернатива-оставить свой код таким, как он есть, и сделать вызов ajax синхронным, а не асинхронным, добавив

асинхронные: ложные

к вариантам.

на jQuery."Аякс" () | библиотека jQuery API документация[^]


s yu

Никакого эффекта, если изменить async: false с true.