我有一个API调用,我需要能够运行一些检查,并可能返回各种状态代码。我不需要自定义视图或任何东西,我只需要返回正确的代码。如果用户没有传递正确的凭据,我需要返回一个401状态。如果他们没有发送支持的请求格式,我需要返回一个400状态。
因为它是一个应用程序接口,所以我真正想做的就是设置响应状态并退出,并显示一条简单、愚蠢的消息,说明请求失败的原因(可能是使用exit)。只够完成这项工作,但我一直没能让它正常工作。我尝试过使用PHP的header()和Cake的$this->header() (这都在控制器中),但是虽然我得到了退出消息,但标题显示为200 OK状态。
使用下面的代码,我得到了消息,但是没有设置头。我遗漏了什么?
if( !$this->auth_api() ) {
header( '401 Not Authorized' );
exit( 'Not authorized' );
}发布于 2011-05-29 04:59:03
PHP <=5.3
header()函数有一个状态码参数。如果您指定了它,服务器将从那里处理它。
header('HTTP/1.1 401 Unauthorized', true, 401);PHP >=5.4
请看Gajus的答案:https://stackoverflow.com/a/14223222/362536
发布于 2013-01-09 04:12:04
从PHP5.4开始,你可以使用http_response_code。
http_response_code(404);这将负责设置正确的HTTP标头。
如果您运行的是PHP < 5.4,那么您有两个选择:
在PHP中实现的
http_response_code function。发布于 2011-05-29 03:53:21
我不认为你设置的header是正确的,试试这个:
header('HTTP/1.0 401 Unauthorized');https://stackoverflow.com/questions/6163970
复制相似问题