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

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

18.03.2025, 17:45. Показов 2874. Ответов 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 / 1384 / 362
Регистрация: 08.02.2013
Сообщений: 8,148
Записей в блоге: 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 / 1384 / 362
Регистрация: 08.02.2013
Сообщений: 8,148
Записей в блоге: 2
19.03.2025, 10:16
Цитата Сообщение от krvsa Посмотреть сообщение
веру в $(this).serialize()
в console.log() и в F12 нужнее
0
 Аватар для voraa
1305 / 1326 / 193
Регистрация: 21.01.2024
Сообщений: 6,115
19.03.2025, 10:18
Цитата Сообщение от ft4l Посмотреть сообщение
<form class="form-contact comment_form" action="/viewing?newsID=5" method="post"
Что с newId при пост запросе будет? Как ее считывать?
0
Невнимательный
 Аватар для ft4l
3148 / 1384 / 362
Регистрация: 08.02.2013
Сообщений: 8,148
Записей в блоге: 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 / 1384 / 362
Регистрация: 08.02.2013
Сообщений: 8,148
Записей в блоге: 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 / 1384 / 362
Регистрация: 08.02.2013
Сообщений: 8,148
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru