如何解决yii2 RESTFUL API浏览器被CORS策略阻止
,它工作正常,但是从浏览器(从reactNative获取)中,我有错误: enter image description here
和
如何为所有请求添加选项?
谢谢
解决方法
解决: https://github.com/yiisoft/yii2/blob/master/framework/filters/Cors.php#L111
在Cors.php中的Action之前添加:
if ($this->request->isOptions && $this->request->headers->has('Access-Control-Request-Method')) {
// it is CORS preflight request,respond with 200 OK without further processing
$this->response->setStatusCode(200);
return false;
}
感谢Leandro Gehlen
,您可以尝试在RestController.php
的CORS过滤器配置中添加以下几行'Access-Control-Allow-Methods' => ['GET','POST','PUT','PATCH','DELETE','HEAD','OPTIONS'],'Allow' => ['GET',
最后,它应该类似于:
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['corsFilter'] = [
'class' => \yii\filters\Cors::className(),'cors' => [
'Origin' => ['*'],'Access-Control-Request-Method' => ['GET','Access-Control-Request-Headers' => ['*'],'Access-Control-Allow-Methods' => ['GET','Access-Control-Allow-Credentials' => null,'Access-Control-Max-Age' => 86400,'Access-Control-Expose-Headers' => []
]
];
return $behaviors;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。