我使用yii2和apache作为我的服务器。当我尝试更改HTTP标头时,没有任何更改。HTTP标头没有被更改:yii2
Yii::$app->response->headers->set('Pragma', 'cache');
保留默认Pragma: no-cache
。这是我的控制器或配置文件。我已经尝试了建议,以改变头直接使用
headers("Pragma: cache");
这完美的作品,在Yii2使用Response类时,可能是什么问题?
我使用yii2和apache作为我的服务器。当我尝试更改HTTP标头时,没有任何更改。HTTP标头没有被更改:yii2
Yii::$app->response->headers->set('Pragma', 'cache');
保留默认Pragma: no-cache
。这是我的控制器或配置文件。我已经尝试了建议,以改变头直接使用
headers("Pragma: cache");
这完美的作品,在Yii2使用Response类时,可能是什么问题?
看起来像你有另一个代码修改头(明确或隐式)。检查HeaderCollection类,我没有看到任何理由不应该工作。因此,检查发布行后面的代码,看看它没有修改相同的头文件。
没有你发布相关代码,并陈述Yii2版本,这是我能做的最好的帮助!
您必须在更改标题前,在响应类中设置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');
是否当您使用PHP的传统'头它的工作( “杂注:高速缓存”);'使用? –
@Cédric非常感谢,我之前没有使用它,是的它的工作原理。让我更新我的问题,因为问题必须是框架。 – learner
@learner你确定你没有收到任何错误讯息吗?你有没有添加'使用Yii;'? –