Задать вопрос
TTA
@TTA
Мутировавший технарь :)

Yii2 не распаршивает json запросы. Как победить?

Коллеги подскажите по вопросу. Отправляю в ajax запросе json:
var register_headers = new Headers();
register_headers.append('Content-type', 'application/json');
var headers = {headers: register_headers};
return new Promise((resolve) => {
  this._http.post('http://localhost/auth/login', JSON.stringify({username: 'username',password: 'password'}), headers)
.subscribe((data) => {if (data.json().success) {...}})
        })

с заголовком "'Content-type', 'application/json'"
Yii2 не видит эти данные в
Yii::$app->getRequest()->getBodyParams()
Судя по докам надо для этого в конфиге прописать:
'components' => [
        'request' => [
            'parsers' => [
                'application/json' => 'yii\web\JsonParser'

я сделал но не помогло. при этом этот код нормально все распаршивает
$body = json_decode(Yii::$app->getRequest()->getRawBody(), true);

Не могу понять чяднт
  • Вопрос задан
  • 5872 просмотра
Подписаться 2 Оценить 5 комментариев
Решения вопроса 1
TTA
@TTA Автор вопроса
Мутировавший технарь :)
в общем вопрос решился. Оказалось когда кросдоменные запросы через браузер отправляются с json данными и хедером "'Content-type application/json "они из post преобразуются в options.
в Yii насторил что "text/plain" запрос воспринимается как REST, убрал хедер в js и все заработало.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vacoo
Вам надо в ajax запросе в качестве данных нужно послать объект.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы