Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 314

JS не получает ответ от PHP обработчика

18.03.2025, 17:45. Показов 2818. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите не получает JS ответ от PHP обработчика как узнать почему?

В консоль приходит ответ 200 что говорит работает.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$('#commentForm').on('click', '.button', function(e) {
        e.preventDefault();
        $.ajax({
            url: '/viewing', // The path to the sender's php file
            data: $(this).serialize(), // Getting data from the form
            type: 'POST', // Sending method post
            dataType: 'json', // Sending method json
            success: function (res) {
                if (res.success) {
                    // Данные отправлены успешно
                    $('#answer').fadeIn().modal('show');
                    $('.modal-body').text(res.answer);
                } else {
                    // Сообщение о не корректном вводе
                    $('#answer').fadeIn().modal('show');
                    $('.modal-body').text(res.answer);
                }
            }, error: function (res) {
                $('#answer').fadeIn().modal('show');
                $('.modal-body').text('Произошла ошибка попробуйте позже');
            }
        });
    });
Но ответ JS не получает отрабатывает
JavaScript
1
error: function (res) {}
PHP
1
2
3
4
5
6
if ($_SERVER['REQUEST_METHOD'] == 'POST' || $this->isAjax()) {
 
    echo json_encode(array('success' => 1, 'answer' => 'Ответ от PHP скрипта'));
    die;
 
}
Упрощенная версия обработчика PHP.

Ответ не приходит.

Если закомментировать
JavaScript
1
dataType: 'json'
То в этом случай отрабатывает else в JS

JavaScript
1
2
3
4
5
else {
    // Сообщение о не корректном вводе
    $('#answer').fadeIn().modal('show');
    $('.modal-body').text(res.answer);
}
В
JavaScript
1
$('.modal-body').text(res.answer);
Ответ не приходит в
JavaScript
1
res.answer
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2025, 17:45
Ответы с готовыми решениями:

Indy: программа не получает правильный ответ от сервера, но сниффер показывает правильный ответ
Всем привет. Моя программа должна сделать гет запрос на определенный сайт. Я включаю программу и снифферю. В сниффере показывается...

Не правильно получает ответ
Проблема в том что я посылаю запрос в ответ мне приходит в коде я поставил если <win>1</win> то в label7.Text =...

Клиент не получает ответ на запрос к серверу
Программа должна периодически отправлять запрос http на сервер и получать ответ. При первой итерации запрос отправляется на сервер и...

31
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3864 / 1771 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
19.03.2025, 08:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ft4l Посмотреть сообщение
Странно что не показывает никакие данные запроса...
JavaScript
1
console.log($(this).serialize())
я-бы попробовал рядом добавить... наивно )
Я х/з чего ты там гоношиш... Но явно что-то не то. Вот у меня все работает.

Кликните здесь для просмотра всего текста
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
 
<form>
    <input name='fld1' value='Value1' />
    <input name='fld2' value='Value2' />
    <input name='fld3' value='Value3' />
    <button>Тест</button>
</form>
 
<script>
$('form').on('submit', function(e){
    e.preventDefault()
    console.log($(this).serialize())
})
</script>
</body>
</html>


Что-то мне подсказывает что у тебя проблемы не только на фронте... Но и на сервере.
Т.е. решать нужно проблемы комплексно.

- Убедиться что сервер может на твой запрос точно возвращает json-строку.
- Убедиться что данные собраны и отправляются на сервер.
0
Невнимательный
 Аватар для ft4l
3148 / 1375 / 362
Регистрация: 08.02.2013
Сообщений: 8,093
Записей в блоге: 2
19.03.2025, 09:30
Цитата Сообщение от krvsa Посмотреть сообщение
Вот у меня все работает.
И чё ?)) чем это ТС-у поможет ?)
там он ссылку привёл типа https://nikolayogreba.ru/viewing/avstralijskoj-prem-ere
внизу страницы форма
Кликните здесь для просмотра всего текста
HTML5
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
                    <h4>Оставить ответ</h4>
                    <form class="form-contact comment_form" action="/viewing?newsID=5" method="post" id="commentForm" novalidate="novalidate">
                        <div class="row">
                            <div class="col-12">
                                <div class="form-group">
                                    <textarea class="form-control w-100" name="comment" id="comment" cols="30" rows="9" placeholder="Написать комментарий"></textarea>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control" name="name" id="name" type="text" value="" placeholder="Имя" />
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control" name="surname" id="surname" type="text" value="" placeholder="Фамилия" />
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control" name="nickname" id="nickname" type="text" value="" placeholder="Никнайм" />
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control" name="email" id="email" type="email" value="" placeholder="Электронная почта" />
                                </div>
                            </div>
                            <div class="col-12">
                                <div class="form-group">
                                    <input class="form-control" name="website" id="website" type="text" value="" placeholder="Веб-сайт" />
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <input type="hidden" name="news_id" value="5" />
                            <button type="submit" class="button button-contactForm btn_1 boxed-btn">Отправить сообщение</button>
                        </div>
                        <!-- Modal answer -->
                        <div class="modal" id="answer" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
                            <div class="modal-dialog modal-dialog-centered" role="document">
                                <div class="modal-content">
                                    <div class="modal-header">
                                        <h5 class="modal-title" id="exampleModalLongTitle">Форма комментарии</h5>
                                    </div>
                                    <div class="modal-body"></div>
                                </div>
                            </div>
                        </div>
                                            </form>

Данные из которой похоже должно JS-ом упавковать и заслать... но ничего никуда не шлёт .)
... даже это newsID=5.
я и написал ... странно это потомучто там чегой-то слишком много всяких js-файлов, и на большее я поленился.
В https://nikolayogreba.ru/assets/js/main.js чё-та многа букв ) и я-бы сам чего-то искал такими console.log
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3864 / 1771 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
19.03.2025, 10:00
Цитата Сообщение от ft4l Посмотреть сообщение
чем это ТС-у поможет ?)
Обретет веру в $(this).serialize().
Поскольку если правильно использовать - оно и работает как надо.
0
Невнимательный
 Аватар для ft4l
3148 / 1375 / 362
Регистрация: 08.02.2013
Сообщений: 8,093
Записей в блоге: 2
19.03.2025, 10:16
Цитата Сообщение от krvsa Посмотреть сообщение
веру в $(this).serialize()
в console.log() и в F12 нужнее
0
 Аватар для voraa
1305 / 1321 / 193
Регистрация: 21.01.2024
Сообщений: 6,096
19.03.2025, 10:18
Цитата Сообщение от ft4l Посмотреть сообщение
<form class="form-contact comment_form" action="/viewing?newsID=5" method="post"
Что с newId при пост запросе будет? Как ее считывать?
0
Невнимательный
 Аватар для ft4l
3148 / 1375 / 362
Регистрация: 08.02.2013
Сообщений: 8,093
Записей в блоге: 2
19.03.2025, 10:47
Цитата Сообщение от voraa Посмотреть сообщение
Что с newId при пост запросе будет?
serialize(), насколько понимаю, никак не добавляет action в строку данных.
Но, по идее , с этим всем из #commentForm как-то нужно отправить ещё и newsID или вообще Id новости.
... или тупо коментарии не к тем новостям будут добавляться
вообще в этом url: '/viewing', // могло-бы быть,
но, как здесь сказали, непоонятно что там ещё зп роутинг адресов... в самой ссыли на новость viewing/avstralijskoj-prem-ere
... как варианты без Id но с названиями
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 314
19.03.2025, 13:01  [ТС]
Добавил

JavaScript
1
console.log($(this).serialize())
В
JavaScript
1
error: function (res) {} и в else {}
Добавлено через 23 минуты
Цитата Сообщение от voraa Посмотреть сообщение
Что с newId при пост запросе будет? Как ее считывать?
Делается на тот случай, если у пользователя будут отключены JS скрипты в браузере, что очень мало вероятно. Но случай разные могут возникнуть.

PHP
1
$this->attributes['news_id'] = !empty($this->attributes['news_id']) ? $this->attributes['news_id'] : (int)$_GET['newsID'];
В PHP обработчике ловится
PHP
1
$_GET['newsID'];
который указан в action="/viewing?newsID=5"

viewing обработчик в нем
PHP
1
$_GET['newsID'];
0
Невнимательный
 Аватар для ft4l
3148 / 1375 / 362
Регистрация: 08.02.2013
Сообщений: 8,093
Записей в блоге: 2
19.03.2025, 14:27
Насчёт function (res) имел ввиду непосредственно в самом начале функции попробовать глянуть...
...бывает что-то как данные видит только если в переменную поместить...
Вообще исторически alert() юзалось ,)) просто строки отловить... console.log() мощнее... объекты, массивы, строки,...


И насчёт одного адреса для обработчика и POST, и XHR-POST, ... обработчие должен их распознать.
и в первом случае надо отдавать страницу, наверное после проверок, добавления/нет и переадресации.
Во втором header('Content-type:application/json'); //charset=... и только json, ничего лишнего.

... глянул в php
Цитата Сообщение от Stranger Посмотреть сообщение
PHP
5
6
7
            $data = $_POST;
            $comment->load($data);
            $this->attributes['news_id'] = !empty($this->attributes['news_id']) ? $this->attributes['news_id'] : (int)$_GET['newsID'];
юзаетя всё-таки или $_POST['news_id']... который есть в форме.
... или только на какой-то типа случай $_GET['newsID'] значит url: '/viewing', // уже как-бы и достаточно...

Предположу что это
Цитата Сообщение от Stranger Посмотреть сообщение
PHP
1
2
3
public function viewingAction()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST' || $this->isAjax()) {
несовсем то... 'POST' будет в обоих случаях <POST / XHR-POST>
Заворачивание проверки в метод намекает что вызывается в зависимости от запрашиваемого адреса ?
... но там как-то непонятно...
привычнее наверное видеть какие-нибудь /addnew и даже бывает в зависимости от newsID создаётся новость или коммент.
... ладно ,) пусть даже будет /viewing ... но я таки не понимаю почему по такой ссыли открывает тоже что и по / ?)

Добавлено через 6 минут
Цитата Сообщение от Stranger Посмотреть сообщение
PHP
25
26
27
28
29
30
            if ($comment->save('news_comment')) echo json_encode(array('success' => 1, 'answer' => 'Комментарии успешно добавлены'));
            else echo json_encode(array('success' => 0, 'answer' => 'Произошла ошибка'));
            die;
        }
 
}
Ещё может exit; попробовать добавить ? после любого ответа в json
... и тогда оно перестанет вываливать "главную"... если выполняется раньше
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 314
19.03.2025, 16:50  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
и тогда оно перестанет вываливать "главную"... если выполняется раньше
Да, я тоже об этом подумал. Чтобы не получать всю структуру HTML а всего лишь ответ от PHP обработчика

Добавлено через 1 час 59 минут
Разобрался. Все дело было в путях. Нужно быть предельно внимательным к путям.

Добавил условие, и все заработало. Он все время перенаправлял на главную. Хотя при этом находясь на нужной странице.

PHP
1
Router::add('^viewing/(?P<alias>[a-z0-9-.]+)|(^viewing/?$)/?$', ['controller' => 'Viewing', 'action' => 'viewing']);
Но не работает
HTML5
1
action="/viewing?newsID=5"
Он не существует
PHP
1
$_GET['newsID'];
Но все равно еще буду пересматривать логику скрипта. Главное - удалось сдвинутся с места).

Добавлено через 17 минут
Или изменить url в JS

JavaScript
1
url: '/viewing/comment', // The path to the sender's php file
В routes.php вернуть все обратно

PHP
1
Router::add('^viewing/(?P<alias>[a-z0-9-.]+)/?$', ['controller' => 'Viewing', 'action' => 'viewing']);
Тоже все работает)
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3864 / 1771 / 434
Регистрация: 14.03.2022
Сообщений: 4,460
19.03.2025, 16:55
Stranger, для этого есть специальный раздел...
https://www.cyberforum.ru/php/
0
Невнимательный
 Аватар для ft4l
3148 / 1375 / 362
Регистрация: 08.02.2013
Сообщений: 8,093
Записей в блоге: 2
19.03.2025, 18:56
Лучший ответ Сообщение было отмечено Stranger как решение

Решение

Цитата Сообщение от Stranger Посмотреть сообщение
'^viewing/(?P<alias>[a-z0-9-.]+)/?$'
тут часть после viewing/ обязательно должна присутствовать.
JS-функция её не добавляла.

... Необязательно например
'^viewing/(?P<alias>[-.a-z0-9]*)/?$'
пустая строка сможет попадать в ['alias']
1
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 314
19.03.2025, 19:53  [ТС]
Цитата Сообщение от ft4l Посмотреть сообщение
'^viewing/(?P<alias>[-.a-z0-9]*)/?$'
Нужно попробовать) Тоже думал над тем чтобы маршрутизатор переписать)

А в JS url оставит просто viewing/ а не так viewing/comment
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2025, 19:53

Клиент не получает ответ с сервера flask
Клиент ( в моем случае odoo ) отправляет на сервер ( там стоит flask ) данные (артикулы), примерно так: response =...

Клиент Kotlin не получает ответ от сервера
Добрый день. Клиент на Котлин подвисает при попытке получить ответ с сервера. private lateinit var gSocket: Socket ... gSocket =...

Socket.recieve не получает ответ до конца
Сама функция private string finds(string cookie, string word) { byte buffer = new byte; ...

Как выводить ответ скрипта обработчика на странице где форма отправки
Как выводить ответ скрипта обработчика на странице где форма отправки: $res = mysql_query(&quot;select * from `table` where...

Программа отправляет запрос википедию и получает ответ
Вот написал программу, которая отправляет запрос википедию и получает ответ. Вот видео ...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru