2015-10-13 58 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');