Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
3 / 3 / 5
Регистрация: 11.11.2015
Сообщений: 413

Не всегда срабатывает ajax метод

22.12.2016, 14:05. Показов 859. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, почему не всегда срабатывает ajax запрос?
Делаю универсальную функцию, для обращения к серверу:
JavaScript Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 function executeAjaxRequest(data, response) {
                $.ajax({
                    type: "POST",
                    url: "/api/proxy",
                    dataType: "json",
                    contentType: "application/json",
                    data: JSON.stringify(data),
                    success: function (response) {
                        callback.success(response);
                    },
                    error: function(status) {
                        callback = [];
                        alert("Ошибка при получении данных: " + status.responseText);
                    }
                });
            };
вызываю так:
JavaScript Скопировано
1
2
3
4
5
6
7
 
                                var params = {
                                    resource: "/api/data-directory/advsource",
                                    method: "GET"
                                };
                                executeAjaxRequest(params, e);
            }
В этом случае всё работает, но если сделать так:
JavaScript Скопировано
1
2
3
4
5
6
 var a = {
                        resource: "/api/Clients/UpdateClient",
                        method: "Post",
                        parameters: client
                    };
                   executeAjaxRequest(a, e);
то ругается на строку "callback.success(response);"

Добавлено через 10 минут
И если убрать эту строку во втором варианте то всё тоже работает

Добавлено через 2 минуты
Возможно, разница в том, что если возвращается с сервера массив данных, то всё работает при использовании строки "callback.success(response)", если не массив (единичное значение, например, айдишник ) то работает без этой строки, как сделать универсальный метод для любого запроса?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2016, 14:05
Ответы с готовыми решениями:

Не всегда срабатывает ajax
Доброго времени суток. Делаю сайт по нахождению оптимального пути по алгоритму Дейкстры.. При записи на сервер возникает проблема, что...

404 не всегда срабатывает
Здравствуйте. Страницы ошибок у меня расписаны (.htaccess): ErrorDocument 400 /error.php?p=400 ErrorDocument 401 /error.php?p=401 ...

.onclick не всегда срабатывает
есть код, который создаёт тег <img> к нему я привязывают .onclick img.onclick = myFunction; function myFunction() { ...

6
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
22.12.2016, 14:05
Что такое callback и какая ошибка-то?
0
3 / 3 / 5
Регистрация: 11.11.2015
Сообщений: 413
22.12.2016, 14:08  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Что такое callback и какая ошибка-то?
Сорри, там ошибка в объявлении функции (экспериментировал) callback это второй параметр функции function executeAjaxRequest(data, callback) {}

Добавлено через 34 секунды
JavaScript Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 function executeAjaxRequest(data, callback) {
                $.ajax({
                    type: "POST",
                    url: "/api/proxy",
                    dataType: "json",
                    contentType: "application/json",
                    data: JSON.stringify(data),
                    success: function (response) {
                        callback.success(response);
                    },
                    error: function(status) {
                        callback = [];
                        alert("Ошибка при получении данных: " + status.responseText);
                    }
                });
            };
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
22.12.2016, 14:09
Что из себя представляет callback
Цитата Сообщение от Balanaar Посмотреть сообщение
и какая ошибка-то?
0
3 / 3 / 5
Регистрация: 11.11.2015
Сообщений: 413
22.12.2016, 14:15  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
какая ошибка-то?
Clients:493 Uncaught TypeError: callback.success is not a function

Добавлено через 1 минуту
Цитата Сообщение от Balanaar Посмотреть сообщение
Что из себя представляет callback
JavaScript Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   function getAdvertisings(SelectedAvd) { //Связывание дропдауна для рекламы с данными
                var viewModel = kendo.observable({
                    selectedAdvertisingId: SelectedAvd,
                    advertisings: new kendo.data.DataSource({
                        transport: {
                            read: function (e) {
                                var params = {
                                    resource: "/api/data-directory/advsource",
                                    method: "GET"
                                };
                                executeAjaxRequest(params, e);
                            }
                        }
                    })
                });
                kendo.bind($("#adv"), viewModel);
            }
Добавлено через 29 секунд
Второй параметр - ответ от сервера
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
22.12.2016, 14:18
А... я как-то сразу не заметил, что это всё тот же кендо.
Ваш ответ не отвечает на вопрос о том, что же всё-таки такое callback.

Добавлено через 3 минуты
А. Всё. Увидел. В 6-й строке судя по всему. Правда всё равно невозможно понять, что там конкретно, не зная тонкостей фреймворка.
0
3 / 3 / 5
Регистрация: 11.11.2015
Сообщений: 413
22.12.2016, 14:48  [ТС]
Цитата Сообщение от Balanaar Посмотреть сообщение
Правда всё равно невозможно понять, что там конкретно, не зная тонкостей фреймворка.
Опуская место использования, необходим универсальный метод делающий запрос к серверу

Добавлено через 11 минут
Эта функция в идеале должна иметь три параметра: function executeAjaxRequest(a, b, c) {}, где
a - отправляемые данные, в формате: resource: "/api/Clients/UpdateClient",
method: "Post",
parameters: client ,
b - данные которые вернул сервер,
с - функция, которая выполняется при удачном ответе от сервера
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2016, 14:48
Помогаю со студенческими работами здесь

Условие всегда срабатывает
Здравствуйте! У меня как бы два вопроса в одном сразу) В php идет проверка на логин пароль $logins = $_POST; $pas = $_POST; if...

Не всегда срабатывает функция
Добрый день. есть пару сайтов, для которых подключен один JS, на каждом сайте есть кнопка "Вверх" для скроллинга, на...

Не всегда срабатывает кнопка на геймпаде
Срабатывает только если сильно нажать. Пробовал протирать уайт спиритом, тёр ластиком обе стороны, не помогает .Что ещё можно сделать,...

Почему не всегда срабатывает ExitWindowsEx?
Вот пример применения API-функции: Call ExitWindowsEx(EWX_SHUTDOWN, &H0) , где: EWX_SHUTDOWN = &H1& Если функция...

If срабатывает всегда в форме регистрации
Всем привет. Хочу сделать простенькую форму ригистрации. Но тут ужасный косяк который срабатывает всегда. Вот код: <?php $db...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер