Spec-Zone.ru › Yii 2.0

Класс yii\filters\Cors

Все классы | Свойства | Методы
Наследование yii\filters\Cors » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/filters/Cors.php

Фильтр CORS реализует Cross Origin Resource Sharing.

Внимательно ознакомьтесь с тем, что делает CORS и чего не делает. CORS не обеспечивает безопасность вашего API, но позволяет разработчику предоставлять доступ стороннему коду (вызовы ajax из внешнего домена).

Вы можете использовать фильтр CORS, прикрепив его как поведение к контроллеру или модулю, как показано ниже,

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
        ],
    ];
}

Фильтр CORS может быть специализирован для ограничения параметров, как это, Информация о CORS от MDN

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
            'cors' => [
                // restrict access to
                'Origin' => ['http://www.myserver.com', 'https://www.myserver.com'],
                'Access-Control-Request-Method' => ['POST', 'PUT'],
                // Allow only POST and PUT methods
                'Access-Control-Request-Headers' => ['X-Wsse'],
                // Allow only headers 'X-Wsse'
                'Access-Control-Allow-Credentials' => true,
                // Allow OPTIONS caching
                'Access-Control-Max-Age' => 3600,
                // Allow the X-Pagination-Current-Page header to be exposed to the browser.
                'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'],
            ],

        ],
    ];
}

Дополнительную информацию о добавлении фильтра CORS в контроллер см. в Руководстве по REST-контроллерам.

Публичные свойства

Свойство Тип Описание Определено в
$actions массив Определяет специфические правила CORS для конкретных действий yii\filters\Cors
$cors массив Основные заголовки, обрабатываемые для запросов CORS. yii\filters\Cors
$except массив Список идентификаторов действий, к которым этот фильтр не должен применяться. yii\base\ActionFilter
$only массив Список идентификаторов действий, к которым этот фильтр должен применяться. yii\base\ActionFilter
$owner yii\base\Component|null Владелец этого поведения yii\base\Behavior
$request yii\web\Request Текущий запрос. yii\filters\Cors
$response yii\web\Response Ответ, который должен быть отправлен. yii\filters\Cors

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т. е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
addCorsHeaders() Добавляет заголовки CORS в ответ yii\filters\Cors
afterAction() Этот метод вызывается сразу после выполнения действия. yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() Прикрепляет объект поведения к компоненту. yii\base\Behavior
beforeAction() Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить подготовку к действию в последнюю минуту. yii\filters\Cors
beforeFilter() yii\base\ActionFilter
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
detach() Открепляет объект поведения от компонента. yii\base\Behavior
events() Объявляет обработчики событий для событий $owner. yii\base\Behavior
extractHeaders() Извлекает заголовки CORS из запроса yii\filters\Cors
hasMethod() Возвращает значение, указывающее, определен ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object
overrideDefaultSettings() Переопределяет настройки для конкретного действия yii\filters\Cors
prepareHeaders() Для каждого заголовка CORS создает специфический ответ yii\filters\Cors

Защищенные методы

Метод Описание Определено в
getActionId() Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю yii\base\ActionFilter
headerize() Преобразует любую строку (включая php заголовки с префиксом HTTP) в формат заголовка, например: X-PINGOTHER -> X-Pingother X_PINGOTHER -> X-Pingother yii\filters\Cors
headerizeToPhp() Преобразует любую строку (включая php заголовки с префиксом HTTP) в формат заголовка, например: X-Pingother -> HTTP_X_PINGOTHER X PINGOTHER -> HTTP_X_PINGOTHER yii\filters\Cors
isActive() Возвращает значение, указывающее, активен ли фильтр для данного действия. yii\base\ActionFilter
prepareAllowHeaders() Обработка классического запроса CORS для избежания дублирования кода yii\filters\Cors

Подробное описание свойств

$actions публичное свойство

Определяет специфические правила CORS для конкретных действий

public array $actions = []

$cors публичное свойство

Основные заголовки, обрабатываемые для запросов CORS.

public array $cors = ['Origin' => ['*'], 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'], 'Access-Control-Request-Headers' => ['*'], 'Access-Control-Allow-Credentials' => null, 'Access-Control-Max-Age' => 86400, 'Access-Control-Expose-Headers' => []]

$request публичное свойство

Текущий запрос. Если не задано, будет использован компонент request приложения.

public yii\web\Request $request = null

$response публичное свойство

Ответ, который должен быть отправлен. Если не задано, будет использован компонент response приложения.

public yii\web\Response $response = null

Подробное описание методов

addCorsHeaders() публичный метод

Добавляет заголовки CORS в ответ

public void addCorsHeaders ( $response, $headers )
$response yii\web\Response
$headers массив

Заголовки CORS, которые были вычислены

beforeAction() публичный метод

Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить подготовку к действию в последнюю минуту.

public boolean beforeAction ( $action )
$action yii\base\Action

Действие, которое должно быть выполнено.

return boolean

Выполнять ли действие дальше.

extractHeaders() публичный метод

Извлечь заголовки CORS из запроса

public массив extractHeaders ( )
return массив

Заголовки CORS для обработки

headerize() защищённый метод

Преобразовать любую строку (включая php заголовки с префиксом HTTP) в формат заголовка, например: X-PINGOTHER -> X-Pingother X_PINGOTHER -> X-Pingother

protected строка headerize ( $string )
$string строка

Строка для преобразования

return строка

Результат в формате "заголовок"

headerizeToPhp() защищённый метод

Преобразовать любую строку (включая php заголовки с префиксом HTTP) в формат заголовка, например: X-Pingother -> HTTP_X_PINGOTHER X PINGOTHER -> HTTP_X_PINGOTHER

protected строка headerizeToPhp ( $string )
$string строка

Строка для преобразования

return строка

Результат в формате "php $_SERVER заголовок"

overrideDefaultSettings() публичный метод

Переопределить настройки для определенного действия

public void overrideDefaultSettings ( $action )
$action yii\base\Action

Настройки действия для переопределения

prepareAllowHeaders() защищённый метод

Обработать классический запрос CORS, чтобы избежать дублирования кода

protected void prepareAllowHeaders ( $type, $requestHeaders, &$responseHeaders )
$type строка

Тип заголовков, которые мы будем обрабатывать

$requestHeaders массив

Заголовки CORS запрошенные клиентом

$responseHeaders массив

Заголовки CORS ответа, отправленные клиенту

prepareHeaders() публичный метод

Для каждого заголовка CORS создать соответствующий ответ

public массив prepareHeaders ( $requestHeaders )
$requestHeaders массив

Заголовки CORS, которые мы обнаружили

return массив

Заголовки CORS, готовые к отправке

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-cors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API