我正在尝试使用Zend Framework 2应用程序中的自定义http状态代码498 - Token Invalid
发送响应。这显然不起作用,因为标准Zend Response类不允许自定义http代码。
所以我创建了自己的响应类来处理这个http代码并在我的动作中返回它:
$response = new CustomResponse();
$response->setStatusCode(498); //basic zend response objects throws InvalidArgumentException
return $response;
虽然没有抛出任何异常,但浏览器说它返回了500错误。
如何使这个工作?
答案 0 :(得分:4)
ZF2中的HTTP Response类严格遵循状态码的RFC 2616。这是一种很好的做法,当您传递未知状态代码时,setStatusCode()
方法会抛出异常。
无论如何,您不需要创建自定义响应对象来返回非标准HTTP状态代码。此要求存在setCustomStatusCode()
方法。
在任何控制器操作中尝试此操作:
public function myAction()
{
$response = $this->getResponse();
$response->setCustomStatusCode(498);
$response->setReasonPhrase('Invalid token!');
return $response;
}