Как избавиться от 302 редиректа после ajax запроса?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
webgrig
Сообщения: 163
Зарегистрирован: 2015.10.29, 21:34

Как избавиться от 302 редиректа после ajax запроса?

Сообщение webgrig »

Привет всем.
После выполнения GET-ajax запроса получаю 302 редирект на тот же экшин, далее браузер идет на страницу этого экшина.

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

public function actionDelImg($modelId, $imgName){
    if (Yii::$app->request->isAjax) {
        if(ImageUpload::delImg($modelId, $imgName)){
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ['flag' => true];
        }
    }
}
От куда это появляется и как от этого избавится?
Аватара пользователя
Diplodok
Сообщения: 76
Зарегистрирован: 2012.07.09, 15:55
Контактная информация:

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение Diplodok »

Я думаю проблема не в экшене, а в ajax запросе. Точнее в обработке ответа запроса.
webgrig
Сообщения: 163
Зарегистрирован: 2015.10.29, 21:34

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение webgrig »

Diplodok писал(а): 2018.10.04, 11:08 Я думаю проблема не в экшене, а в ajax запросе. Точнее в обработке ответа запроса.
Точно нет!
Если я делаю exit; в самом начале экшина, все равно получаю тот же 302 редирект

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

public function actionDelImg($modelId, $imgName){exit;
    if (Yii::$app->request->isAjax) {
        if(ImageUpload::delImg($modelId, $imgName)){
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ['flag' => true];
        }
    }
}
Аватара пользователя
Diplodok
Сообщения: 76
Зарегистрирован: 2012.07.09, 15:55
Контактная информация:

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение Diplodok »

Даже exit - это ответ и он обрабатывается в success запроса. И там уже принимается решение, что делать с полученными данными.
webgrig
Сообщения: 163
Зарегистрирован: 2015.10.29, 21:34

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение webgrig »

Говорят, что этот редирект это фишка yii.js , но только в чем ее прелесть и как от этой прелести избавиться я не понимаю!!!
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение someweb »

Фишка в Yii есть, но не в вашем случае - у вас в action нет редиректа.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
webgrig
Сообщения: 163
Зарегистрирован: 2015.10.29, 21:34

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение webgrig »

Все разобрался.
Этот редирект делал компонент codemix\localeurls\UrlManager который нужен для мультиязычности сайта.
Он наботает таким образом, что если делаешь запрос по адресу в котором не указан язык, то он делает переадресацию и подставляет в адрес страницы язык.
Поэтому пришлось переписать ajax запрос таким образом, что бы в url изначально был прописан текущий язык.

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

url: '/{$language}/admin/models/del-img',
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как избавиться от 302 редиректа после ajax запроса?

Сообщение someweb »

Надо через Url::to(), тогда язык автоматом вставится.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Ответить