Symfony2 异常响应。将 404 状态代码替换为 200

2023-12-22

我在 symfony2 中有一个 404 处理程序,它是一个 EventListener。

对于某些 404,我会进行重定向,效果很好。对于浏览器来说,不会抛出 404 错误。

new RedirectResponse( $newURL );

该行基本上用 200 替换了 404 状态代码。

但在其他情况下,我想返回一些内容,而不是 404 消息,而是一些替换数据。像这样的事情:

$response = new Response( $returnJSONMessage );
$response->headers->set( 'Content-Type', 'application/json' );
$response->setStatusCode(200);

从代码角度来看,这很好,但它不会阻止返回 404。我猜测是因为它位于其中:

$event->setResponse( $theResponse );

其类型为 GetResponseForExceptionEvent。

我需要调用什么,才能让它以 200 而不是 404 的形式返回我的数据。就像 RedirectResponse 似乎那样。 我试过:

$event->stopPropagation();

但这是有点事后的事了。在这种情况下,似乎 $event->setResponse 中不是 RedirectResponse 的任何内容都会被标记为 404。

有任何想法吗?


终于通过 Symfony GitHub pull 找到了我正在寻找的东西;

$response->headers->set( 'X-Status-Code', 200 );

允许您覆盖异常状态代码。

$response->setStatusCode(200);

不管用。

在这里请求:https://github.com/symfony/symfony/pull/5043 https://github.com/symfony/symfony/pull/5043

拉到这里:https://github.com/symfony/symfony/commit/118a5d2274dc7d6701c3e2a758b820cd49ebaf3b https://github.com/symfony/symfony/commit/118a5d2274dc7d6701c3e2a758b820cd49ebaf3b

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 异常响应。将 404 状态代码替换为 200 的相关文章

随机推荐