1. 程式人生 > >Yii restful api跨域

Yii restful api跨域

tab ray request xtend host accep resource exp return

問題:NO ‘Access-Control_Allow-Origin‘ header is present on the requested resource.

解決方案


<?php

namespace app\modules\v1\controllers;

use Yii;
use yii\web\Response;

class BaseAPIController extends \yii\rest\Controller
{
    public $serializer = [
        ‘class‘ => ‘yii\rest\Serializer‘,
        ‘collectionEnvelope‘ => ‘items‘,
    ];
    
    
public function behaviors() { $behaviors = parent::behaviors(); $behaviors[‘contentNegotiator‘][‘formats‘] = [ ‘application/json‘ => Response::FORMAT_JSON ]; $behaviors[‘access‘] = [ ‘class‘ => ‘yii\filters\AccessControl‘, ‘rules‘ => [ [
‘allow‘ => true, ‘matchCallback‘ => function ($rule, $action) { return in_array(Yii::$app->request->hostInfo, Yii::$app->params[‘acceptableHosts‘]); } ] ] ]; $behaviors[‘corsFilter‘] = [
‘class‘ => ‘yii\filters\Cors‘, ‘cors‘ => [ ‘Origin‘ => Yii::$app->params[‘acceptableHosts‘], ‘Access-Control-Request-Method‘ => [‘GET‘, ‘POST‘, ‘PUT‘, ‘PATCH‘, ‘DELETE‘, ‘HEAD‘, ‘OPTIONS‘], ‘Access-Control-Request-Headers‘ => [‘*‘], ‘Access-Control-Allow-Credentials‘ => true, ‘Access-Control-Max-Age‘ => 86400, ‘Access-Control-Expose-Headers‘ => [], ], ]; return $behaviors; } }

Yii restful api跨域