2015-10-13 86 views
5

我使用yii2和apache作为我的服务器。当我尝试更改HTTP标头时,没有任何更改。HTTP标头没有被更改:yii2

Yii::$app->response->headers->set('Pragma', 'cache'); 

保留默认Pragma: no-cache。这是我的控制器或配置文件。我已经尝试了建议,以改变头直接使用

headers("Pragma: cache"); 

这完美的作品,在Yii2使用Response类时,可能是什么问题?

+0

是否当您使用PHP的传统'头它的工作( “杂注:高速缓存”);'使用? –

+1

@Cédric非常感谢,我之前没有使用它,是的它的工作原理。让我更新我的问题,因为问题必须是框架。 – learner

+0

@learner你确定你没有收到任何错误讯息吗?你有没有添加'使用Yii;'? –

回答

0

看起来像你有另一个代码修改头(明确或隐式)。检查HeaderCollection类,我没有看到任何理由不应该工作。因此,检查发布行后面的代码,看看它没有修改相同的头文件。

没有你发布相关代码,并陈述Yii2版本,这是我能做的最好的帮助!

1

您必须在更改标题前,在响应类中设置format属性。

yii2手册中:

FORMAT_RAW:数据将被视为无 任何转换的响应内容。 不会额外添加HTTP标头

http://www.yiiframework.com/doc-2.0/yii-web-response.html#$format-detail

例如:

Yii::$app->response->format = yii\web\Response::FORMAT_RAW; 
Yii::$app->response->headers->set('Pragma', 'cache');