1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace yii\rest;
- use Yii;
- class OptionsAction extends \yii\base\Action
- {
-
- public $collectionOptions = ['GET', 'POST', 'HEAD', 'OPTIONS'];
-
- public $resourceOptions = ['GET', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];
-
- public function run($id = null)
- {
- if (Yii::$app->getRequest()->getMethod() !== 'OPTIONS') {
- Yii::$app->getResponse()->setStatusCode(405);
- }
- $options = $id === null ? $this->collectionOptions : $this->resourceOptions;
- $headers = Yii::$app->getResponse()->getHeaders();
- $headers->set('Allow', implode(', ', $options));
- $headers->set('Access-Control-Allow-Methods', implode(', ', $options));
- }
- }
|