【问题标题】:Yii and Vue2 CORS enable. Server responds to preflight OPTIONS request with 404 errorYii 和 Vue2 CORS 启用。服务器以 404 错误响应预检 OPTIONS 请求
【发布时间】: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 行为()中,但它失败了。

【问题讨论】:

    标签: php yii vuejs2 cors preflight


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 2014-01-16
      • 2020-04-09
      • 2018-07-30
      • 1970-01-01
      • 2015-08-04
      • 2020-10-26
      • 2017-08-01
      • 2013-12-05
      相关资源
      最近更新 更多