我想更改我的RESTful API中的默认标头集合。我可以在发送的每个响应上使用set()方法更改标头,但我不想写
$response = Yii::$app->response;
$response->headers->set('X-Powered-By','My server <devel>')
$response->setStatusCode(somecode);
$response->data = somedata;
return $response;
Run Code Online (Sandbox Code Playgroud)
这非常麻烦,并且我的Controller动作会不断增加,因为我必须响应每个错误的请求和错误。我试图更改rest / config / main.php中的响应组件,但是我禁止更改headers属性,因为它是只读的。
请帮忙。
您无需费心扩展响应类。您可以通过配置response应用程序的组件并在beforeSend事件中添加自定义标头来实现此目的,例如:
return [
...
'components' => [
...
'response' => [
'on beforeSend' => function($event) {
$event->sender->headers->add('X-Frame-Options', 'DENY');
},
],
...
],
];
Run Code Online (Sandbox Code Playgroud)
这将为所有响应添加标题。如果要针对每个控制器执行此操作,则可以\Yii::$app->response->headers->add($name, $value);在afterAction()控制器的方法中使用。
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |