Adi*_*Adi 4 exception-handling response symfony
我在symfony2中有一个404处理程序,它是一个EventListener.
对于某些404,我进行重定向,效果很好.对于浏览器,不会抛出404.
new RedirectResponse( $newURL );
Run Code Online (Sandbox Code Playgroud)
该行基本上用200替换404状态代码.
但在其他情况下,我想返回一些内容,而不是404消息,而是一些替换数据.像这样的东西:
$response = new Response( $returnJSONMessage );
$response->headers->set( 'Content-Type', 'application/json' );
$response->setStatusCode(200);
Run Code Online (Sandbox Code Playgroud)
代码方面,这很好,但它不会阻止返回404.我猜是因为它在这个范围内:
$event->setResponse( $theResponse );
Run Code Online (Sandbox Code Playgroud)
其类型为GetResponseForExceptionEvent.
我需要调用什么来让它以200而不是404的形式返回我的数据.就像RedirectResponse似乎一样.我试过了:
$event->stopPropagation();
Run Code Online (Sandbox Code Playgroud)
但它有点事后.似乎$ event-> setResponse中的任何内容都不是RedirectResponse,在这种情况下标记为404.
有任何想法吗?
Adi*_*Adi 13
终于通过Symfony GitHub拉出了我想要的东西;
$response->headers->set( 'X-Status-Code', 200 );
Run Code Online (Sandbox Code Playgroud)
允许您覆盖异常状态代码.
$response->setStatusCode(200);
Run Code Online (Sandbox Code Playgroud)
不管用.
请求:https: //github.com/symfony/symfony/pull/5043
拉到这里:https: //github.com/symfony/symfony/commit/118a5d2274dc7d6701c3e2a758b820cd49ebaf3b
归档时间: |
|
查看次数: |
4764 次 |
最近记录: |