Не могу получить данные из POST Ajax

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

Да, можно. Я же выше вам об этом написал.
Делаете в конфиге:

Код: Выделить всё

'request' => [
            ...
            'parsers' => [
                'application/json' => 'yii\web\JsonParser',
            ]
        ],
Затем в контроллере получаете:

Код: Выделить всё

$data = \Yii::$app->request->post();
В ajax запросе должен быть

Код: Выделить всё

contentType: "application/json"
Последний раз редактировалось sosnovskiy 2017.04.11, 18:20, всего редактировалось 1 раз.
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Не могу получить данные из POST Ajax

Сообщение caHek2x »

sosnovskiy писал(а): 2017.04.11, 17:40 Я вас изначально не правильно понял.
В этом случае jquery согласно dataType: json понимает что ожидается json строка и преобразует ее в массив.
чтото и я не о том подумал ... да ajax отправляет просто post ... а ответ ждет json ... в этом у автора и проблема ...
guru_nemo писал(а): 2017.04.11, 18:12 Сделал следующее:
зачем ? вам и так все корректно приходило ...
я еще раз вам повторюсь: ПОСМОТРИТЕ в debug ...
у вас никакой ошибки нет: ДАННЫЕ корректно до экшена доходят !
от вас ajax ждет просто правильного ответа !
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

у вас никакой ошибки нет: ДАННЫЕ корректно до экшена доходят !
Данные то доходят, однако без указания парсера их невозможно получить методом

Код: Выделить всё

Yii::$app->request->post();
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Не могу получить данные из POST Ajax

Сообщение caHek2x »

sosnovskiy писал(а): 2017.04.11, 18:22
у вас никакой ошибки нет: ДАННЫЕ корректно до экшена доходят !
Данные то доходят, однако без указания парсера их невозможно получить методом

Код: Выделить всё

Yii::$app->request->post();
с чего вы это взяли ? я вам наглядно пример показал ... у автора точно такой же ajax запрос ... и эти данные корректно находятся в request->post ...
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

guru_nemo, у вас несколько проблем в вашем коде:
1) Вы не можете получить json данные запроса. О том как это сделать я вам описал.
2) Вы не можете сохранить данные в файл так как var_dump не возвращает строку а выводит ее в браузер.
3) Вы не верно делаете ответ на ajax запрос. Как сделать провильно вам указал caHek2x
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

с чего вы это взяли ? я вам наглядно пример показал ... у автора точно такой же ajax запрос ... и эти данные корректно находятся в request->post ...


У автора прописан content-type:application/json и он отправляет json а у вас нет и вы отправляете обычный post запрос. Добавьте его в свой код и посмотрите результат.
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Не могу получить данные из POST Ajax

Сообщение caHek2x »

хм, действительно вы правы ... даже не обратил внимание (стыдно :-( ), тогда автору проще убрать эту строка и без лишних телодвижений все будет так как он хочет )
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

хм, действительно вы правы ... даже не обратил внимание (стыдно :-( ), тогда автору проще убрать эту строка и без лишних телодвижений все будет так как он хочет )
Так же нужно убрать из ajax запроса dataType.
guru_nemo
Сообщения: 68
Зарегистрирован: 2017.04.10, 21:28

Re: Не могу получить данные из POST Ajax

Сообщение guru_nemo »

sosnovskiy писал(а): 2017.04.11, 18:18 Да, можно. Я же выше вам об этом написал.
Делаете в конфиге:

Код: Выделить всё

'request' => [
            ...
            'parsers' => [
                'application/json' => 'yii\web\JsonParser',
            ]
        ],
Затем в контроллере получаете:

Код: Выделить всё

$data = \Yii::$app->request->post();
В ajax запросе должен быть

Код: Выделить всё

contentType: "application/json"
такой вариант не работает.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

такой вариант не работает.
Мне дальше нужно что-то угадывать? Или может вы пришлете код конфига, код контроллера и код ajax запроса?

Только пожалуйста, пожалейте помогающих, оформляйте код code тегом
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Не могу получить данные из POST Ajax

Сообщение caHek2x »

guru_nemo писал(а): 2017.04.11, 18:40 такой вариант не работает.
помоему мы вам подсказываем быстрее чем вы пробуете ... вам надо просто получить данные ? ну так уберите contentType и не надо париться с конфигами и тд ...
guru_nemo
Сообщения: 68
Зарегистрирован: 2017.04.10, 21:28

Re: Не могу получить данные из POST Ajax

Сообщение guru_nemo »

разобрался
чтобы работал $data = \Yii::$app->request->post(); надо закоментировать contentType: "application/json; charset=utf-8" в запросе ajax. а данные из поста в экшене получаются как $data['id']
а нужно ли передавать csrfToken?
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Не могу получить данные из POST Ajax

Сообщение sosnovskiy »

Нужно
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Не могу получить данные из POST Ajax

Сообщение rugabarbo »

guru_nemo писал(а): 2017.04.11, 18:47 а нужно ли передавать csrfToken?
viewtopic.php?t=37738
guru_nemo
Сообщения: 68
Зарегистрирован: 2017.04.10, 21:28

Re: Не могу получить данные из POST Ajax

Сообщение guru_nemo »

rugabarbo писал(а): 2017.04.11, 18:51
guru_nemo писал(а): 2017.04.11, 18:47 а нужно ли передавать csrfToken?
viewtopic.php?t=37738
из этого следует, что ajax запрос сам цепляет _csrf из <?= Html::csrfMetaTags() ?> т.е. явно его передавать не надо. Или я что-то не допонял?
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Не могу получить данные из POST Ajax

Сообщение rugabarbo »

guru_nemo писал(а): 2017.04.11, 19:00
rugabarbo писал(а): 2017.04.11, 18:51
guru_nemo писал(а): 2017.04.11, 18:47 а нужно ли передавать csrfToken?
viewtopic.php?t=37738
из этого следует, что ajax запрос сам цепляет _csrf из <?= Html::csrfMetaTags() ?> т.е. явно его передавать не надо. Или я что-то не допонял?
Всё верно
Ответить