我需要进行API调用并运行一些检查,可能需要返回各种状态代码。我不需要自定义视图或其他东西,只需要返回适当的代码。如果用户未通过正确的凭据,则需要返回401状态。如果他们没有发送支持的请求格式,则需要返回400状态。
由于这是一个API,所以我真正想要做的就是设置响应状态并退出,并使用一个简单的愚蠢消息解释请求失败的原因(可能使用exit
)。只需要完成任务,但我无法使其正常工作。我尝试使用PHP的header()
和Cake的$this->header()
(这都在控制器中),但是虽然我得到了退出消息,但标头显示200 OK
状态。
使用下面的代码,我得到了消息,但是标头没有设置。我缺少什么?
if( !$this->auth_api() ) {
header( '401 Not Authorized' );
exit( 'Not authorized' );
}
HTTP/1.1
协议。从PHP 5.4开始,您可以使用http_response_code()
函数设置响应状态码,这是最佳方法。否则,您需要将状态码附加到某个标头中。您可以使用类似于header('X-Ignore-This: something', true, 401)
的方式来实现。 - Brad