Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
6 / 6 / 5
Регистрация: 29.01.2015
Сообщений: 456
1

Парсинг ответа сервера ajax

12.03.2016, 06:20. Показов 2914. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, написал такой код для работы с ajax, но чтобы работать с ответом сервера, нужно вручную парсить ответ с помощью JSON.parse. Не знаете, как сделать, чтобы как в ВК ответ был передан как аргумент функции success, а не text? Например, success(errors, message, js, ts)?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ajax.post({
            url: '/get_message',
            data: 'from='+from_id+'&offset='+offset,
            [B]success: function(text) {[/B]
                if(!isJson(text)) return false;
                text = JSON.parse(text);
                console.log(text[0]);
                if(!text.errors) return false;
                switch(text.errors) {
                    case 0:
                        if(!text.html) return false;
                        Messages.pasteMessage(text.html);
                        break;
                    case 1:
                        if(!text.message) return false;
                        showErrorForm(text.message, 'global_error');
                        break;
                }
            }
        });
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
var ajax = {
    init: function() {
        var xhr;
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                xhr = false;
            }
        }
        if (!xhr && typeof XMLHttpRequest!='undefined') {
            xhr = new XMLHttpRequest();
        }
        return xhr;  
    },
  /**
   *
   * @param <object> param  url     - адрес отправки
   *                        method  - метод POST или GET 
   *                        data    - дополнительные данные 
   *                        success - функция вызываемая в случае успешного выполнения
   *                        error   - функция вызываемая в случае возникноаения ошибки
   
   * @code ajax.request({
   *         url: "/main",
   *         method: "POST",
   *         data: "name=John&location=Boston",
   *         success:function(data) {
   *           //If success
   *         },
   *         error:function(data, date) {
   *           //if there was an error
   *         }
   *       })
   */
    request: function(param) {
        var r = ajax.init();
        var method = param.method ? param.method : "POST";
        r.open(method, param.url, true);
        r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        r.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
        r.send(param.data);
        if(param.showProgress) {
            param.showProgress();
        }
        r.onreadystatechange = function() {
            if (r.readyState == 4) {
                if (r.status >= 200 && r.status < 300) {
                    if (param.success) {
                        param.success(r.responseText, r); 
                    } 
                    
                   /* if (param.success) {
                        var t = JSON.parse(r.responseText);
                       // if(t[''])
                        param.success(r.responseText, r);
                    } */
                } else {
                    if (param.error) {
                        param.error(r.responseText, r);
                    }
                } 
                if(param.hideProgress) {
                    param.hideProgress();
                }
            }
        };  
        return r;
    },  
  
 
 
    post: function(param) {
        return ajax.request({
            url: param.url,
            data: param.data,
            method: "POST",
            showProgress: param.showProgress,
            hideProgress: param.hideProgress,
            success: param.success,
            error: param.error,
        });
    },
    get: function(param) {
        return ajax.request({
            url: param.url,
            data: param.data,
            method: "GET",
            showProgress: param.showProgress,
            hideProgress: param.hideProgress,
            success: param.success,
            error: param.error,
        });
    },
    pasteJs: function(js) {
        if(!js) return false;
        var code = document.createElement('script');
        code.type = 'text/javascript';
        code.innerHTML = js;
        console.log(js);
        document.head.appendChild(code);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2016, 06:20
Ответы с готовыми решениями:

Парсинг ответа сервера ajax
Здравствуйте, ответ от сервера приходит в формате json, вида: {&quot;asd&quot;:true,&quot;aaa&quot;:&quot;$&quot;,&quot;html&quot;:}....

После вставки ответа ajax в input запроса, ответ ajax не изменяется
Здравствуйте! В общем так, есть поле input, есть таблица с полем count. Задача: изменить...

Получить кусок ajax ответа
Здравствуйте. Есть аякс запрос. Нужно в некоторую функцию вытащить результат этого запроса. ...

Анимация ожидания ответа ajax запроса
Можно ли сделать анимацию загрузки такую как на этом видео: тыЦ это анимация из samsung touchwiz...

0
12.03.2016, 06:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2016, 06:20
Помогаю со студенческими работами здесь

Остановить скрипт после ответа от Ajax
Поставил себе плагин, Кнопку на которую нажимаешь и идет анимация загрузки. Нужно остановить...

Отправка переменной с JS в php с последующем получением ответа (Ajax?)
Всем привет. Нужно реализовать вот такую схему: Запрос с айди в JS &gt; php файл с функцией...

Как получить код ответа сервера?
Есть какая нибудь функция, чтобы узнать код ответа? Типа даёшь урл, а он тебе возвращает 200, 404 и...

Не понятный формат данных ответа сервера
Посылаю запрос на сторонний сервер, а он выдает ответ в таком формате 8212&lt;!&gt;&lt;!&gt;0&lt;!&gt;5968&lt;!&gt;0&lt;!&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru