Задать вопрос
EnChikiben
@EnChikiben

Как настроить кросдоменный запрос в Yii2?

Добрый день!
Суть проблемы такая апи на yii2 лежит на домене api.site.lc, а запросы приходят с admin.sitel.lc.
конфиг контроллера yii:
class UserController extends ActiveController
{
	public $modelClass = 'common\models\User';

	public function behaviors()
	{
		$behaviors = parent::behaviors();
		$behaviors['authenticator'] = [
			'class' => HttpBearerAuth::className()
		];
		$behaviors['corsFilter'] = [
			'class' => Cors::className()
		];
		return $behaviors;
	}

	public function actionTest()
	{
		echo 111;
	}
}


с ангуляра я отправляю запрос /user/test, и насколько я понял CORS, сначала отправляется запрос "OPTIONS" (без Bearer) типа узнать можно нет обращаться. Но yii меня отбивает на этом запросе как неаторизационного, так как нет Bearer, Bearer же должен указываться в самом get теле запроса.

Как быть?
  • Вопрос задан
  • 658 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@matperez
Передавайте токен через header stackoverflow.com/questions/14183025/setting-appli.... BearerAuth получает токен из заголовка.

Либо, как вариант, можно настроить отдачу CORS заголовков на уровне веб-сервера, что бы они вообще до Yii не ходоходили enable-cors.org/server.html.
Ответ написан
vyachin
@vyachin
Ищу работу
Добавить в контроллер
public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
            'Origin' => ['http://admin.sitel.lc],
        ],
    ];
}

подробности тут www.yiiframework.com/doc-2.0/yii-filters-cors.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы