问题描述
我有这个 yii2 控制器,我想在其中设置 Access-Control-Allow-Origin: *
标头
class DoctorController extends ActiveController
{
public $modelClass = 'api\modules\v1\models\Doctor';
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['access'] = [
'class' => \yii\filters\AccessControl::className(),'rules' => [
[
// All actions
'allow' => true,'actions' => ['index','view'],],];
return $behaviors;
}
}
请帮忙!
解决方法
你可以使用这个简单的代码:
header('Access-Control-Allow-Origin: *');
它可能会添加到您的控制器的 action
之一或您的控制器的 beforeAction()
或其他用例中(由您根据应用程序的逻辑/架构自行决定)。
https://www.yiiframework.com/doc/api/2.0/yii-base-controller#beforeAction()-detail
我已经通过更新 behavior() 函数解决了这个问题
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['corsFilter'] = [
'class' => \yii\filters\Cors::className(),'cors' => [
'Origin' => ['*'],'Access-Control-Request-Method' => ['GET'],// add more
'Access-Control-Request-Headers' => ['*'],'Access-Control-Allow-Credentials' => null,'Access-Control-Max-Age' => 86400,],];
$behaviors['access'] = [
'class' => \yii\filters\AccessControl::className(),'rules' => [
[
// All actions
'allow' => true,'actions' => ['index','view'],// add more
],];
return $behaviors;
}