如何使用Silex“自动”为每个响应添加标题?
到目前为止,我必须对每一个回复都做以下事情:
$app->post('/photos'), function () use ($app) {
return $app->json(array('status' => 'success'), 200, array('Access-Control-Allow-Origin' => '*'));
});
相反,我想使用前置过滤器自动发送Access-Control-Allow-Origin: *
每个请求:
// Before
$app->before(function () use ($app) {
$response = new Response();
$response->headers->set('Access-Control-Allow-Origin', '*');
});
// Route
$app->post('/photos'), function () use ($app) {
return $app->json(array('status' => 'success')); // <-- Not working, because headers aren't added yet.
});
答案 0 :(得分:15)
您可以使用after
应用程序中间件,这是方法签名:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$app->after(function (Request $request, Response $response) {
// ...
});
这样您就可以获得可以自由修改的Response对象。