@stasboiko

Как передать значение из локальной переменной в глобальную?

response = "12345";
  $.ajax({
			url: '/send',
			type: 'POST',
			data: data,
			cache: false,
			processData: false,
			contentType: false,
			success: function(data) {
				response = data;
           console.log(response); // возвращает результат (имя файла)
			}
		});

		console.log(response); // возвращает 12345. А мне нужно то, что вернуло в success
  • Вопрос задан
  • 318 просмотров
Пригласить эксперта
Ответы на вопрос 3
BuriK666
@BuriK666
Компьютерный псих
так не получится, т.к.
console.log(response); // возвращает 12345. А мне нужно то, что вернуло в success

Выполняется ДО того как сделан ajax-запрос
$.ajax - асинхронная функция
Ответ написан
Комментировать
@fetis26
Ну, за фронтенд!
Убираем колбек с success и делаем так
$.ajax({
...
})
.done(function(data) {
  console.log(data)
})
Ответ написан
Комментировать
Bellicus
@Bellicus
И швец, и жнец, и на дуде игрец.
Ну, если на ассинхронность насрать:
$.ajax({
    async: false
})


Либо, как вариант, на ready химичим с ajax и записываем в localStroage(cookie, indexedDB), а на load получаем и перезаписываем переменную:
$(window).ready(function() {
	var response = '12345';
	$.ajax({
		url: '/send',
		type: 'POST',
		data: data,
		cache: false,
		processData: false,
		contentType: false,
	}).done(function(data) {
		localStorage.setItem('response', data);
	});
});

$(window).load(function() {
	var response = localStorage.getItem('response');
	console.log(response);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы