2009-02-24 29 views
39

का उपयोग कर कस्टम HTTP शीर्षलेख जोड़ना किसी HTML पृष्ठ पर, किसी छवि ("img") या एंकर ("ए") टैग के लिंक पर क्लिक करते समय, मैं GET अनुरोध के लिए कस्टम शीर्षलेख जोड़ना चाहता हूं। ये लिंक आमतौर पर गतिशील सामग्री डाउनलोड करने के लिए होते हैं। ये हेडर एसएएमएल हेडर या कस्टम एप्लिकेशन विशिष्ट हेडर हो सकते हैं।जावास्क्रिप्ट

क्या यह कस्टम हेडर जावास्क्रिप्ट के माध्यम से जोड़ना संभव है? या यदि मैं XMLHttpRequest के माध्यम से इन्हें जोड़ता हूं, तो मैं डाउनलोड कार्यक्षमता कैसे प्राप्त कर सकता हूं?

यह आवश्यकता केवल आईई 6 या 7 के लिए है।

+2

मैं ऐसा करना चाहता हूं, उदाहरण के लिए यदि आप उस सेवा से छवि प्राप्त करना चाहते हैं जिसके लिए GET अनुरोध में प्रमाणीकरण शीर्षलेख की आवश्यकता है। –

उत्तर

40

यदि आप XHR का उपयोग कर रहे हैं, तो setRequestHeader काम करना चाहिए, उदा।

xhr.setRequestHeader('custom-header', 'value'); 

पीएस आपको अपने एंकरों के व्यवहार को संशोधित करने के लिए Hijax का उपयोग करना चाहिए ताकि यह काम कर सके यदि किसी कारण से AJAX आपके ग्राहकों के लिए काम नहीं कर रहा है (पृष्ठ पर कहीं और एक बस्टेड स्क्रिप्ट की तरह)।

12

मुझे लगता है कि इसे पूरा करने का सबसे आसान तरीका HTTP हेडर के बजाय क्वेरीस्ट्रिंग का उपयोग करना है।

+1

+1। XMLHttpRequest का उपयोग करते समय भी, शीर्षलेख सेटिंग पूरी तरह विश्वसनीय नहीं है। पैरामीटर के लिए जाओ। – bobince

+1

यदि आप SSL का उपयोग करते हैं और जो जानकारी आप भेज रहे हैं वह संवेदनशील है, तो आपको इसे क्वेरीस्ट्रिंग में नहीं रखना चाहिए क्योंकि यह एन्क्रिप्टेड नहीं होगा। केवल http संदेश निकाय एन्क्रिप्ट किया गया है, इस प्रकार हेडर –

+5

@JamesReategui में सुरक्षित है यह सही नहीं है: यूआरएल पारगमन में एन्क्रिप्ट किया गया है। संभावित सुरक्षा समस्या अंतराल (लॉग या बुकमार्क या इतिहास में) में गुप्त यूआरएल की दृढ़ता होगी, लेकिन पारगमन में नहीं। –

12

ब्राउज़र के अंदर से अनुरोध में हेडर जोड़ने का एकमात्र तरीका XmlHttpRequest setRequestHeader विधि का उपयोग करना है।

"GET" अनुरोध के साथ इसका उपयोग संसाधन डाउनलोड करेगा। तब चाल का उद्देश्य इच्छित तरीके से संसाधन तक पहुंचना है। जाहिर है कि आप जीईटी प्रतिक्रिया को एक छोटी अवधि के लिए कैश करने योग्य होने की अनुमति दे सकते हैं, इसलिए एक नए यूआरएल पर नेविगेशन या एक यूआरजी टैग के निर्माण के साथ एक आईआरजी टैग के निर्माण को पिछले "जीईटी" से कैश प्रतिक्रिया का उपयोग करना चाहिए। हालांकि, विशेष रूप से आईई में विफल होने की संभावना है जो कैश का संबंध है, जहां खुद के लिए एक कानून हो सकता है।

आखिरकार मैं मेहरदाद से सहमत हूं, क्वेरी स्ट्रिंग का उपयोग सबसे आसान और सबसे विश्वसनीय तरीका है।

एक और quirky विकल्प एक यूआरएल के लिए अनुरोध करने के लिए एक एक्सएचआर का उपयोग करता है जो संसाधन तक पहुंचने के आपके इरादे को इंगित करता है। यह एक सत्र कुकी के साथ प्रतिक्रिया दे सकता है जो छवि या लिंक के बाद के अनुरोध द्वारा किया जाएगा।

0

जैसा कि पहले से ही कहा गया है, क्वेरीस्ट्रिंग का उपयोग करने का सबसे आसान तरीका है।

लेकिन यदि आप सुरक्षा कारणों से नहीं कर सकते हैं, तो आपको कुकीज़ का उपयोग करने पर विचार करना चाहिए।

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