b4r*_*3kk 3 php http-headers zend-framework2
我在ZF2中设置标题有问题.我的代码看起来像这样:
public function xmlAction()
{
$headers = new \Zend\Http\Headers();
$headers->clearHeaders();
$headers->addHeaderLine('Content-type', 'application/xml');
echo $file; // xml file content
exit;
}
Run Code Online (Sandbox Code Playgroud)
但标题仍然是text/html.我可以设置正确的标题:
header("Content-type: application/xml");
Run Code Online (Sandbox Code Playgroud)
但我想用Zend Framework做到这一点.为什么上面的代码不起作用?
Jur*_*man 14
你正在做的是在ZF2 Response对象中设置标题,但这个响应以后从未使用过.您正在回显文件然后退出,因此ZF2无法发送响应(带有标题).
您必须使用响应来发送文件,您可以这样做:
public function xmlAction()
{
$response = $this->getResponse();
$response->getHeaders()->addHeaderLine('Content-Type', 'application/xml');
$response->setContent($file);
return $response;
}
Run Code Online (Sandbox Code Playgroud)
从控制器方法返回响应的想法称为"短路",并在手册中进行了解释