Cors запрос
Добавлено: 2017.11.30, 17:25
Приветсвую!
Проблема, уже несколько дней бьюсь, и никак не могу победить проблему.
На локальном компьютера развернул два проекта frontend SPA на Vue и backend на Yii2. backend сервер на docker-compose= php7 nginx mysql.
frontend висит на http://localhost:8081
backend на http://localhost:8000
Отправляю с frontend запрос с токеном в заголовке, возвращает ответ
Что я делаю не так?
Проблема, уже несколько дней бьюсь, и никак не могу победить проблему.
На локальном компьютера развернул два проекта frontend SPA на Vue и backend на Yii2. backend сервер на docker-compose= php7 nginx mysql.
frontend висит на http://localhost:8081
backend на http://localhost:8000
Отправляю с frontend запрос с токеном в заголовке, возвращает ответ
Вот мои настройки в YiiFailed to load http://localhost:8000/api/v1/user/index: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8081' is therefore not allowed access.
Код: Выделить всё
class UserController extends RestController
{
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator']['except'] = ['list'];
return $behaviors;
}
public function actionIndex()
{
$model = ['2'=>\Yii::$app->user->isGuest];
return $model;
}
}
class RestController extends Controller
{
public static function allowedDomains()
{
return [
//'*',
'http://localhost:8081',
];
}
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'authMethods' => [
HttpBasicAuth::className(),
HttpBearerAuth::className(),
QueryParamAuth::className(),
],
];
$behaviors['corsFilter'] = [
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => static::allowedDomains(),
'Access-Control-Request-Method' => ['POST', 'GET', 'PUT', 'DELETE', 'OPTIONS'],
'Access-Control-Allow-Credentials' => true,
'Access-Control-Max-Age' => 3600,
],
];
return $behaviors;
}
}