У меня есть ситуации, когда мне нужно инициализировать/назначить переменные из результатов вызова JQuery AJAX, а затем использовать эти переменные далее вниз по сценарию:Как использовать и повторно использовать переменные JS через функцию
var shouldRedirect = ???
$.ajax({
url: 'http://example.com',
type: 'GET',
data: 'blah',
asynch: false,
timeout: 1800,
success: function(data) {
shouldRedirect = data.rows[0].redirectFlag
}
});
if(shouldRedirect)
window.location = "...";
два вопроса у меня:
- Предполагая, что результирующий JSON будет содержать
redirectFlag
логическое значение, этоdata.rows[0].redirectFlag
правильный способ получения значения для моей переменной ?; и - Что мне инициализировать
shouldRedirect
до того, как AJAX стартует (как я могу сказать, «создайте переменную, но не придайте ей значения!»)?
Заранее благодарен!
Ваш 'asynch' свойство не так, он должен быть' async'. Это никогда не будет работать, если запрос является асинхронным, поэтому вам нужно будет его изменить. –
@JamesAllardice: Я бы сказал, что это хорошо. запросы синхронизации в любом случае плохи :) – ThiefMaster
@ThiefMaster - Согласен, они плохие, но в этом случае это единственный способ сделать то, что пытается сделать OP (используйте значение, возвращаемое запросом AJAX за пределами события 'success' обработчик). –