我使用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;'? –