2015-10-13 11 views
5

Sto usando yii2 e apache per il mio server. Quando provo a cambiare le intestazioni HTTP, non cambia nulla.Le intestazioni HTTP non vengono modificate: yii2

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

Il valore predefinito Pragma: no-cache rimane. Questo è sia sul mio controller che sui file di configurazione. Ho cercato un suggerimento per modificare le intestazioni usando direttamente

headers("Pragma: cache"); 

Questo funziona perfettamente, quello che potrebbe essere il problema quando si utilizza classe Response in Yii2?

+0

funziona quando si utilizza PHP tradizionale 'header ("Pragma: cache");' utilizzo? –

+1

@ Cédric grazie mille per questo, non l'avevo mai usato prima e sì funziona. Consentitemi di aggiornare la mia domanda di conseguenza poiché il problema deve essere il framework. – learner

+0

@learner Sei sicuro di non ricevere alcun messaggio di errore? hai aggiunto 'usa Yii;'? –

risposta

0

Sembra che tu abbia un altro codice che modifica l'intestazione (esplicitamente o implicitamente). Controllando la classe HeaderCollection, non vedo alcun motivo per cui non dovrebbe funzionare. Quindi controlla il codice dopo la linea pubblicata e vedi che non modifica la stessa intestazione.

Senza la pubblicazione del codice pertinente e la versione di Yii2, questo è il meglio che posso fare per aiutare!

1

è necessario prima di modificare l'intestazione, impostare la proprietà format nella classe di risposta.

in manuale yii2:

FORMAT_RAW: i dati saranno trattati come il contenuto risposta senza alcuna conversione. Non verrà aggiunta alcuna intestazione HTTP aggiuntiva.

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

esempio:

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