The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"JQuery AJAX возврат данных"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (JavaScript)
Изначальное сообщение [ Отслеживать ]

"JQuery AJAX возврат данных"  +/
Сообщение от Сергей (??) on 19-Мрт-15, 13:46 
Всем привет!
При загрузке страницы алерт показывает "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(){//ошибок не возникло
        }
    });
}

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "JQuery AJAX возврат данных"  +/
Сообщение от Филимон Утренний on 20-Мрт-15, 11:14 
Запрос асинхронный. GetData завершается раньше, чем запрос к серверу
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "JQuery AJAX возврат данных"  +/
Сообщение от Сергей (??) on 20-Мрт-15, 12:54 
> Запрос асинхронный. GetData завершается раньше, чем запрос к серверу

А как это можно победить?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "JQuery AJAX возврат данных"  +/
Сообщение от Филимон Покушал on 20-Мрт-15, 14:08 
> А как это можно победить?

Не по феншую: Добавить async:false, в свойства запроса. Но это очень, очень неправильно. Даже броузеры на это уже ругаются. Неправильно - потому, что запрос может залаговать и вместе с ним может залаговать интерфейс


По феншую: вставьте в success колбек свой код, который должен выполняться после получения данных. complete - это когда запрос завершён и не обязательно успешно. success - когда завершён успешно.

Ещё можно про JQuery Deferred. Пригодится.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру