Заголовки CORS не добавляются в ответ, несмотря на то, что конечная точка использует класс cors в поведении внутри apicontroller - PullRequest
0 голосов
/ 21 января 2020

У меня проблема с заголовком CORS, который не был добавлен в ответ. Я использую 'cors' из пакета \yii\filters\Cors

По сути, я делаю это:

class ApiController extends ActiveController
{
    public function behaviors()
    {
        return array_merge(parent::behaviors(), [
            // For cross-domain AJAX request
            'corsFilter' => [
                'class' => 'yii\filters\Cors',
                'cors' => [
                    'Origin' => ['*'], // Restrict access to domains
                    'Access-Control-Max-Age' => 3600, // Cache (seconds)
                    'Access-Control-Allow-Origin' => true,
                    'Access-Control-Expose-Headers' => ['*'],
                    'Access-Control-Request-Headers' => ['*'],
                    'Access-Control-Allow-Credentials' => true,
                    'Access-Control-Request-Method' => ['POST', 'HEAD', 'DELETE', 'PUT', 'GET', 'OPTIONS'],
                ],
            ],
        ]);
    }
}

И у меня все еще тот же результат, что и без применения этого метода. . Заголовки CORS не добавляются в ответ на запрос OPTIONS на мою конечную точку.

У кого-нибудь еще была / была эта проблема?

1 Ответ

0 голосов
/ 21 января 2020

Вы также можете попробовать разрешить источник:

    public static function allowedDomains()
        {
            return [
                // '*',                        // star allows all domains
                'http://localhost:4200',
            ];
        }   

  public function behaviors()
        {
            return array_merge(parent::behaviors(), [

                // For cross-domain AJAX request
                'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'stats' => ['GET'],
                        ],
                    ],
                'corsFilter' => [
                    'class' => \yii\filters\Cors::className(),
                    'cors' => [
                        // restrict access to domains:
                        'Origin' => static::allowedDomains(),
                        'Access-Control-Request-Method' => ['POST', 'GET', 'DELETE', 'PUT', 'OPTIONS'],
                        'Access-Control-Allow-Credentials' => true,
                        'Access-Control-Allow-Headers' => ['*'],
                        'Access-Control-Allow-Origin' => ['*'],
                        'Access-Control-Max-Age' => 3600, // Cache (seconds)
                    ],

                ],
            ]);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...