500 (internal server error) при отправке ajax post

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
geniy
Сообщения: 62
Зарегистрирован: 2014.03.17, 17:02
Контактная информация:

500 (internal server error) при отправке ajax post

Сообщение geniy »

в контроллере принимаю

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

if(Yii::$app->request->isAjax && $user){
            $json = json_encode(Yii::$app->request->post());
            $decode = json_decode($json, true);
             return $decode;
        } 
js скрипт такой:

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

    jQuery.ajax({
            url: "index",
            type: "POST",
            data: {title : val},
            success: function(data) {
                $('h1').remove();
                $('#privetstvie').prepend('<h1>'+data.title+'</h1>');
                jQuery('#privetstvie').show();
        } 
возвращает 500 (internal server error)

Когда в контроллере вот так:

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

if(Yii::$app->request->isAjax && $user){
            //$json = json_encode(Yii::$app->request->post());
            //$decode = json_decode($json, true);
             return json_encode(Yii::$app->request->post());
        } 
возвращает
data: "{"title":"\u0414\u0430!? "}"

Как вернуть нормальную расдекодированную строку с русскими словами, в данном случае здесь должно отобразиться слово "Да!?"
geniy
Сообщения: 62
Зарегистрирован: 2014.03.17, 17:02
Контактная информация:

Re: 500 (internal server error) при отправке ajax post

Сообщение geniy »

Вам нужно добавить строчку в ajax после принятия таких данных data: "{"title":"\u0414\u0430!? "}", например

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

var cart = JSON.parse ( data );
Последний раз редактировалось geniy 2015.01.03, 19:05, всего редактировалось 1 раз.
geniy
Сообщения: 62
Зарегистрирован: 2014.03.17, 17:02
Контактная информация:

Re: 500 (internal server error) при отправке ajax post

Сообщение geniy »

Loveorigami писал(а):dataType: json
А в контроллере encode а затем decode выполнять?
Аватара пользователя
norvele
Сообщения: 26
Зарегистрирован: 2013.12.05, 06:26
Откуда: Новосибирск

Re: 500 (internal server error) при отправке ajax post

Сообщение norvele »

Помимо dataType: 'json' в ajax запросе надо с сервера правильный тип данных слать.
Никаких encode, decode городить нигде не надо, в контроллере:

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

Yii::$app->response->format = 'json';
return ['foo'=>'bar']
вернет в data объект {foo:'bar'}
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 500 (internal server error) при отправке ajax post

Сообщение zelenin »

зачем спрашивать какой-то бред? расскажи что хочешь отослать и зачем, и что хочешь получить и зачем, а не "я принимаю данные, кодирую и декдодирую их и у меня ошибка".
geniy
Сообщения: 62
Зарегистрирован: 2014.03.17, 17:02
Контактная информация:

Re: 500 (internal server error) при отправке ajax post

Сообщение geniy »

У меня простая главная страница с приветственными сообщениями, которые нужно редактировать администратором
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: 500 (internal server error) при отправке ajax post

Сообщение zelenin »

geniy писал(а):У меня простая главная страница с приветственными сообщениями, которые нужно редактировать администратором
это не ответ на вопрос. в таком кейсе не нужен аякс.
Ответить