有谁配置过Yii2.0的跨域访问机制 [ 2.0 版本 ]
在控制器里的behaviors方法是这样的
public function behaviors()
{
return [
'corsFilter' => [
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => ['http://www.d1.com', 'http://d2.com', 'http://www.d3.com'],
'Access-Control-Request-Method' => ['POST'],
'Access-Control-Request-Headers' => ['*'],
'Access-Control-Allow-Credentials' => true,
'Access-Control-Max-Age' => 86400,
'Access-Control-Expose-Headers' => [],
],
],
];
}
我这里的配置是不是正确的,有谁能帮助一下
xiaoen 补充于 2017-06-13 15:18
浏览器提示这样的信息:已拦截跨源请求:同源策略禁止读取位于 http://xxx.com/index.php?r=site/index
的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin'
)。
xiaoen 补充于 2017-06-13 18:55
多谢各位的回答,你们所说的方法,我都试过了,之后找到了这个方法,可以解决此问题,上源码分享给大家。
public static function allowedDomains()
{
return [
'*'
];
}
public function behaviors()
{
return array_merge(parent::behaviors(), [
'corsFilter' => [
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => static::allowedDomains(),
'Access-Control-Request-Method' => ['POST'],
'Access-Control-Allow-Credentials' => true,
'Access-Control-Max-Age' => 86400,
],
],
]);
}
共 3 个回答
xiaoen
注册时间:2015-03-26
最后登录:2019-12-31
在线时长:38小时55分
最后登录:2019-12-31
在线时长:38小时55分
- 粉丝6
- 金钱7390
- 威望0
- 积分7770