Проблема CORS с PHP (Yii2) AngularJS - PullRequest
0 голосов
/ 29 августа 2018

Продолжайте получать проблемы с корсами. Уже пробовал следующее:

  1. добавив код, который вы можете увидеть на картинке в yii2
  2. установили плагин Cors в Firefox

API URL: http://thisisbig.ae/advanced/backend/web/customersapi/update/?id=2

enter image description here

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Используйте поведение, чтобы определить это

public function behaviors()
{
    return [
        'verbs' => [
            'class' => \yii\filters\VerbFilter::className(),
            'actions' => [
                'index'  => ['GET'],
                'view'   => ['GET'],
                'create' => ['GET', 'POST'],
                'update' => ['GET', 'PUT', 'POST'],
                'delete' => ['POST', 'DELETE'],
            ],
        ],
    ];
} 

Вы также можете использовать фильтр CORS, подключив его в качестве поведения к контроллеру или модулю, как показано ниже,

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
        ],
    ];
}

вы также можете использовать фильтр CORS для ограничения параметров, например,

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
            'cors' => [
                // restrict access to
                'Origin' => ['http://www.myserver.com', 'https://www.myserver.com'],
                // Allow only POST and PUT methods
                'Access-Control-Request-Method' => ['POST', 'PUT'],
                // Allow only headers 'X-Wsse'
                'Access-Control-Request-Headers' => ['X-Wsse'],
                // Allow credentials (cookies, authorization headers, etc.) to be exposed to the browser
                'Access-Control-Allow-Credentials' => true,
                // Allow OPTIONS caching
                'Access-Control-Max-Age' => 3600,
                // Allow the X-Pagination-Current-Page header to be exposed to the browser.
                'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'],
            ],

        ],
    ];
}
0 голосов
/ 29 августа 2018

В серверной части (Yii2) необходимо переопределить функцию глаголов () в контроллере и добавить «OPTIONS» для значения «update»

protected function verbs()
{
    return [
        'index' => ['GET', 'HEAD'],
        'view' => ['GET', 'HEAD'],
        'create' => ['POST'],
        'update' => ['PUT', 'PATCH','OPTIONS'],
        'delete' => ['DELETE'],
    ];
} 
...