2015-10-13 11 views
5

मैं अपने सर्वर के लिए yii2 और apache का उपयोग कर रहा हूं। जब मैं HTTP हेडर बदलने की कोशिश करता हूं, तो कुछ भी नहीं बदलता है।HTTP शीर्षलेखों को बदला नहीं जा रहा है: yii2

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

डिफ़ॉल्ट Pragma: no-cache बनी हुई है। यह मेरे नियंत्रक या विन्यास फाइल दोनों पर है। मैं एक सुझाव हेडर बदलने के लिए सीधे

headers("Pragma: cache"); 

यह पूरी तरह से काम करता है का उपयोग करते हुए, क्या समस्या हो सकती है जब Yii2 में रिस्पांस वर्ग का उपयोग कर की कोशिश की?

+0

यह काम करता है जब आप PHP पारंपरिक 'शीर्ष लेख का उपयोग (" Pragma: कैश ");' उपयोग? –

+1

@ सेड्रिक इसके लिए बहुत बहुत धन्यवाद, मैंने इसे पहले इस्तेमाल नहीं किया था और हाँ यह काम करता है। मुझे तदनुसार अपना प्रश्न अपडेट करने दें क्योंकि समस्या ढांचा होना चाहिए। – learner

+0

@learner क्या आप वाकई कोई त्रुटि संदेश नहीं प्राप्त कर रहे हैं? क्या आपने 'वाईआई का उपयोग किया है;'? –

उत्तर

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'); 
संबंधित मुद्दे