Показать сообщение отдельно
  #1 (permalink)  
Старый 14.06.2016, 21:00
Интересующийся
Отправить личное сообщение для reno4 Посмотреть профиль Найти все сообщения от reno4
 
Регистрация: 11.09.2012
Сообщений: 11

AJAX не модифицирует глобальные и внешние переменные
Допустим, есть глобальная переменная

var j = {};

И есть AJAX запрос
function nnn () {
....
	$.ajax ({
		method: "GET",
		url: "../locale/forms.json",
		dataType: "json",
		error: function (jqxhr, status, errorMsg) {
			console.log("status: " + jqxhr.status + ", " + errorMsg + "; " + jqxhr.responseText);
			console.trace();
			console.dir();
		},
		success: function (data) {
			j["estimates"] = "test";
			console.log ("IN = " + j["estimates"]);
		}
	});
....

Есть еще в той же функции вывод в лог после AJAX

console.log ("AFTER: " + j["estimates"]);

В итоге в логе видим

AFTER: undefined
IN = test

мало того, что последовательность нарушена, так еще и откатывается любое изменение внешней переменной, созданной не в AJAX, после завершения AJAX.

Как можно решить эту проблему? Требуется загрузить с сервера данные в JSON формате в соответствующий объект, чтобы потом МНОГОКРАТНО его использовать.

Последний раз редактировалось reno4, 14.06.2016 в 21:43.
Ответить с цитированием