Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

[[yii\filters\Cors|Cors]]

[[yii\filters\Cors|Cors]]

Совместное использование разными источниками CORS

  • это механизм, который позволяет использовать различные ресурсы (шрифты, скрипты, и т.д.) с отличных от основного сайта доменов. В частности, AJAX вызовы JavaScript могут использовать механизм XMLHttpRequest. В противном случае, такие "междоменные" запросы были бы запрещены из-за политики безопасности same origin. CORS задаёт способ взаимодействия сервера и браузера, определяющий возможность делать междоменные запросы.


Фильтр [[yii\filters\Cors|Cors filter]] следует определять перед фильтрами Аутентификации / Авторизации, для того чтобы быть уверенными, что заголовки CORS будут всегда посланы.

use yii\filters\Cors;
use yii\helpers\ArrayHelper;

public function behaviors()
{
    return ArrayHelper::merge([
        [
            'class' => Cors::className(),
        ],
    ], parent::behaviors());
}

Если вам необходимо добавить CORS-фильтрацию к [[yii\rest\ActiveController]] в вашем API, обратитесь к разделу Контроллеры.

Фильтрация Cors может быть настроена с помощью свойства [[yii\filters\Cors::$cors|$cors]].

  • cors['Origin']: массив, используемый для определения источников. Может принимать значение ['*'] (все) или ['http://www.myserver.net', 'http://www.myotherserver.com']. По умолчанию значение равно ['*'].
  • cors['Access-Control-Request-Method']: массив разрешенных типов запроса, таких как ['GET', 'OPTIONS', 'HEAD']. Значение по умолчанию ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'].
  • cors['Access-Control-Request-Headers']: массив разрешенных заголовков. Может быть ['*'] то есть все заголовки или один из указанных ['X-Request-With']. Значение по умолчанию ['*'].
  • cors['Access-Control-Allow-Credentials']: определяет, может ли текущий запрос быть сделан с использованием авторизации. Может принимать значения true, false или null (не установлено). Значение по умолчанию null.
  • cors['Access-Control-Max-Age']: определяет срок жизни запроса, перед его началом. По умолчанию 86400.

Например, разрешим CORS для источника : http://www.myserver.net с методами GET, HEAD и OPTIONS :

use yii\filters\Cors;
use yii\helpers\ArrayHelper;

public function behaviors()
{
    return ArrayHelper::merge([
        [
            'class' => Cors::className(),
            'cors' => [
                'Origin' => ['http://www.myserver.net'],
                'Access-Control-Request-Method' => ['GET', 'HEAD', 'OPTIONS'],
            ],
        ],
    ], parent::behaviors());
}

Вы можете настроить заголовки CORS переопределения параметров по умолчанию для каждого из действий.

Например, добавление Access-Control-Allow-Credentials для действия login может быть сделано так :

use yii\filters\Cors;
use yii\helpers\ArrayHelper;

public function behaviors()
{
    return ArrayHelper::merge([
        [
            'class' => Cors::className(),
            'cors' => [
                'Origin' => ['http://www.myserver.net'],
                'Access-Control-Request-Method' => ['GET', 'HEAD', 'OPTIONS'],
            ],
            'actions' => [
                'login' => [
                    'Access-Control-Allow-Credentials' => true,
                ]
            ]
        ],
    ], parent::behaviors());
}

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'