| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace app\components\rest;
- use yii\filters\ContentNegotiator;
- use yii\filters\Cors;
- use yii\filters\VerbFilter;
- use yii\rest\Controller;
- use yii\web\Response;
- class JsonController extends Controller {
- public $serializer = 'app\components\rest\Serializer';
- public function behaviors() {
- $behavior = parent::behaviors();
- $behavior['contentNegotiator'] = [
- 'class' => ContentNegotiator::className(),
- 'formats' => [
- 'application/json' => Response::FORMAT_JSON,
- 'application/xml' => Response::FORMAT_XML,
- ],
- ];
- $behavior['corsFilter'] = [
- 'class' => Cors::className(),
- 'cors' => [
- 'Origin' => ['*'],
- 'Access-Control-Request-Method' => [
- 'GET', 'POST', 'PUT', 'PATCH',
- 'DELETE', 'HEAD', 'OPTIONS'
- ],
- 'Access-Control-Request-Headers' => ['*'],
- ],
- ];
- $behavior["authenticator"]["except"] = ['options'];
- return $behavior;
- }
- public function beforeAction($action) {
- if (!parent::beforeAction($action)) return false;
- \Yii::$app->getResponse()->format = Response::FORMAT_JSON;
- return true;
- }
- }
|