所以我做了相当多的挖掘,似乎只能提供关于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 文件的最底部,我的所有代码都在我关闭后多了一行>。 这样的业余错误。