Всем привет!
При загрузке страницы алерт показывает "response=null".
Хотя в консоли браузера по команде localStorage.getItem('resp') показывается ожидаемое содержимое. Также содержимое верно при перезагрузке страницы.Как можно это пофиксить?
Заранее благодарен!GetData();
var response = localStorage.getItem('response');
alert('response='+response);function GetData(){
$.ajax({
type: "POST",
url: "/url/",
data: {
uuid: uuid,
},
dataType: "text",
scriptCharset: "utf-8",
beforeSend: function() {
},
error: function() {
alert('ошибка');
},
complete: function(resp) {//по окончанию запроса
localStorage.setItem('response', resp);
},
success: function(){//ошибок не возникло
}
});
}
Запрос асинхронный. GetData завершается раньше, чем запрос к серверу
> Запрос асинхронный. GetData завершается раньше, чем запрос к серверуА как это можно победить?
> А как это можно победить?Не по феншую: Добавить async:false, в свойства запроса. Но это очень, очень неправильно. Даже броузеры на это уже ругаются. Неправильно - потому, что запрос может залаговать и вместе с ним может залаговать интерфейс
По феншую: вставьте в success колбек свой код, который должен выполняться после получения данных. complete - это когда запрос завершён и не обязательно успешно. success - когда завершён успешно.Ещё можно про JQuery Deferred. Пригодится.