Yii2 iframe Bad Request

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Luk
Сообщения: 9
Зарегистрирован: 2018.11.09, 19:41

Yii2 iframe Bad Request

Сообщение Luk »

Добрый день уважаемые форумчане!
Есть сайт в который нужно вставить через iframe моё приложение созданное на Yii2. В фрейме отображается layout нормально, а контент

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

Bad Request (#400)
Не удалось проверить переданные данные.
The above error occurred while the Web server was processing your request.

Please contact us if you think this is a server error. Thank you.
но при переходе на этот же экшин по ссылке внутри фрейма ошибки нет. Ошибка только при первой загрузке. Заранее всем спасибо.
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Yii2 iframe Bad Request

Сообщение chesar »

Контент подгружается Аяксом? Нужно выключить проверку csrf токена.
Luk
Сообщения: 9
Зарегистрирован: 2018.11.09, 19:41

Re: Yii2 iframe Bad Request

Сообщение Luk »

Нет не аяксом.
Пробовал вот так не помогает

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

class TestController extends Controller
{
    
    public function actionIndex()
    {
        $this->enableCsrfValidation = false;
        //Yii::$app->controller->enableCsrfValidation = false;
        $request =  Yii::$app->request;
        echo '<pre>' .print_r($request, true). '<pre>';
        $obB24App = new \Bitrix24\Bitrix24();
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Yii2 iframe Bad Request

Сообщение chesar »

В экшоне поздно уже изменять. Свойство класса переопредели.
Luk
Сообщения: 9
Зарегистрирован: 2018.11.09, 19:41

Re: Yii2 iframe Bad Request

Сообщение Luk »

Спасибо разобрался.
Контроллер унаследовал не от Controller а от своего класса который расширяет.

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

<?php
namespace app\modules\b24\controllers;
use \yii\web\Controller;
/**
 * Description of appController
 *
 * @author Админ
 */
class appController extends Controller {
    //put your code here
    
    public function beforeAction($action)
    {
        $this->enableCsrfValidation = false;
        return parent::beforeAction($action);
    }    
}

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

<?php

namespace app\controllers;

use Yii;

class TestController extends appController
{
    
    public function actionIndex()
    {

        $request =  Yii::$app->request;
        $obB24App = new \Bitrix24\Bitrix24(false);
И всё теперь работает. На сколько правильный такой подход?
Ответить