一尘不染

设置响应状态代码

php

我有一个API调用,我需要对其进行一些检查并可能返回各种状态代码。我不需要自定义视图或任何东西,我只需要返回正确的代码。如果用户未通过适当的凭据,则需要返回401状态。如果他们尚未发送受支持的请求格式,则需要返回400状态。

因为它是一个API,所以我真正想做的就是设置响应状态并以一条简单的愚蠢消息退出,该消息说明请求失败的原因(可能使用exit)。刚好足以完成工作,但我还无法使其正常工作。我尝试使用PHP
header()和Cake $this->header()(所有这些都在控制器中),但是尽管我收到退出消息,但标题显示了200 OK状态。

使用下面的代码,我得到了消息,但是没有设置标题。我想念什么?

  if( !$this->auth_api() ) {
    header( '401 Not Authorized' );
    exit( 'Not authorized' );
  }

阅读 187

收藏
2020-05-29

共1个答案

一尘不染

PHP <= 5.3

header()功能具有状态代码的参数。如果您指定它,服务器将从那里开始处理它。

header('HTTP/1.1 401 Unauthorized', true, 401);

PHP> = 5.4

2020-05-29