Yii 和 Vue2 CORS 启用。服务器以 404 错误响应预检 OPTIONS 请求
Posted
技术标签:
【中文标题】Yii 和 Vue2 CORS 启用。服务器以 404 错误响应预检 OPTIONS 请求【英文标题】:Yii and Vue2 CORS enable. Server responds to preflight OPTIONS request with 404 error 【发布时间】:2019-08-22 18:06:08 【问题描述】:我有两个样板示例。
首先是来自这里的 Yii2: https://github.com/m-alfan/api-yii2-boilerplate
其次是Vue2: https://github.com/cornflourblue/vue-vuex-registration-login-example
我首先在我的 Apache2 服务器上部署了 http://basic.vue2 域,客户端通过 npm 服务器在第二个域上运行。
问题是当我发送 POST 请求时,我得到了 404 选项
https://ibb.co/r6ctBHr
https://ibb.co/0mmQ44m
https://ibb.co/BZM4d7Y
有人知道如何为 Yii 配置 CORS 吗?我尝试将 cors 添加到 GuestController.php 行为()中,但它失败了。
【问题讨论】:
【参考方案1】:404可能是一个错误的urlManager规则或缺失,你从这里开始。
【讨论】:
当我从 swagger 发送请求时它工作。所以我认为urlManager是正确的【参考方案2】:为 yii 配置 CORS,请确保OPTIONS
动作/动词被允许。
另请参阅此处的文档:CORS config
即:
public function behaviors()
$behaviors = parent::behaviors();
$behaviors['corsFilter'] = [
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => ['*'],
'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
'Access-Control-Request-Headers' => ['*'],
'Access-Control-Allow-Methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
'Allow' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
'Access-Control-Allow-Credentials' => null,
'Access-Control-Max-Age' => 86400,
'Access-Control-Expose-Headers' => []
]
];
return $behaviors;
【讨论】:
以上是关于Yii 和 Vue2 CORS 启用。服务器以 404 错误响应预检 OPTIONS 请求的主要内容,如果未能解决你的问题,请参考以下文章
无法在 asp.net 核心中为身份服务器 4 启用 CORS
如何使用 Angular 7 在 django1.1 中启用 cors?
在 Ubuntu 14.04 上配置 apache 2.4 以启用 CORS