2015-06-08 11 views
18

मैं कुछ इस तरह करने के लिए अपने http हेडर की सभी प्रतिक्रियाओं सेट करना चाहते हैं के लिए प्रतिक्रिया हेडर कैसे निर्धारित करें:अजगर, बोतल: सभी प्रतिसाद

response.headers["X-Frame-Options"] = "SAMEORIGIN" 

मैं this question जाँच की है, लेकिन यह केवल एक विशिष्ट के लिए शीर्ष लेख में परिवर्तन नियंत्रक। मैं अपने सभी शीर्षकों को शायद "log_request" फ़ंक्शन में निम्न तर्क के समान बदलना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

@app.before_request 
def before_request(): 
    # response.headers["X-Frame-Options"] = "SAMEORIGIN" 

उत्तर

29

एक @app.after_request() hook में हेडर सेट करें, जिस पर आप पर हेडर स्थापित करने के लिए एक प्रतिक्रिया वस्तु है बिंदु:

@app.after_request 
def apply_caching(response): 
    response.headers["X-Frame-Options"] = "SAMEORIGIN" 
    return response 

flask.request context अभी भी उपलब्ध है जब यह हुक रन है, तो आप अभी भी भिन्न हो सकते हैं इस समय अनुरोध पर आधारित प्रतिक्रिया।

+1

बस इसे जोड़ने के लिए। आपको अपना हेडर टोकन प्राप्त करने के लिए '@ app.before_request' का उपयोग करना चाहिए और इसकी वैधता की जांच करें .. (हेडर को जावास्क्रिप्ट में अनुरोध के साथ भेजा जाना चाहिए) और उसके बाद आपका अनुरोध है जहां आपको प्रतिक्रिया शीर्षलेख –

+0

@JohnRuddell चालू करना चाहिए स्टॉक, फ्लास्क लागू नहीं करता है या टोकन सत्यापन प्रदान नहीं करता है। यह मानते हुए कि आपको यह करना सच नहीं है। – kevr

+0

@kevr यदि आपके पास टोकन है जो एपीआई (जेडब्ल्यूटी) को "बेयरर" टोकन हेडर के साथ लॉक करने के लिए सत्यापन प्रदान करता है) तो पहले_request आपके टोकन की वैधता की जांच करने का एक तरीका है। मैं बस इतना कहने की कोशिश कर रहा था। –

संबंधित मुद्दे