返回 SlimFramework3 中的 $res->withStatus(401) 似乎不起作用


return $res->withStatus(401) in SlimFramework3 not appearing to work?

所以我做了相当多的挖掘,似乎只能提供关于SlimFramework 2的信息,而关于3的信息则不多。

我的问题是这样的:

return $res->withStatus(401)->withHeader('Content-type','application/json')->write(json_encode(array(
            'Error'=>'Your session has timed out.',
            'X-SessionToken' => $session_uuid,
            'Server date/time' => date('c'),
            'Last activity' => Session::sharedInstance()->last_activity(),
            'Path' => $path
        )));

仍然返回状态 200,内容类型仍设置为 text/html,但我的整个身体都在那里。 有什么想法吗? 我尝试在 write() 上查看 PSR-7 文档,看看之后它是否将标头和状态设置回默认值,但没有看到任何内容。

浏览器屏幕截图。

因此,在进行了更多的查找和调试之后,我发现它没有设置标头,因为它仅在 !headers_sent() 时设置它们,这返回为 false。 这意味着我在某处有额外的输出。 结果在我的 PHP 文件的最底部,我的所有代码都在我关闭后多了一行>。 这样的业余错误。