2008-10-20 14 views
40

मैं अपने क्लाइंट-साइड जावास्क्रिप्ट के भीतर HTTP अनुरोध शीर्षलेख फ़ील्ड, मुख्य रूप से रेफरर और उपयोगकर्ता-एजेंट को कैप्चर करना चाहता हूं। मैं उन्हें कैसे एक्सेस कर सकता हूं?मैं जावास्क्रिप्ट के माध्यम से HTTP अनुरोध हेडर फ़ील्ड का उपयोग कैसे करूं?


Google Analytics JavaScript के माध्यम से डेटा प्राप्त करने के लिए वे क्या आप पृष्ठों में एम्बेड है कि प्रबंधन करता है, तो यह निश्चित रूप से संभव है।

संबंधित:
Accessing the web page's HTTP Headers in JavaScript

+0

मूल प्रश्न HTTP हेडर जावास्क्रिप्ट में पहुँचा जा सकता है कि क्या था। स्पष्टता के लिए, उस प्रश्न को अलग से पोस्ट किया गया। http://stackoverflow.com/questions/220231/accessing-http-headers-in-javascript – keparo

उत्तर

52

आप रेफ़रलकर्ता और उपयोगकर्ता-एजेंट का उपयोग करना चाहते हैं, उन क्लाइंट साइड जावास्क्रिप्ट के लिए उपलब्ध हैं, लेकिन सीधे हेडर एक्सेस करके नहीं।

रेफरर को पुनर्प्राप्त करने के लिए, document.referrer का उपयोग करें।
उपयोगकर्ता-एजेंट तक पहुंचने के लिए, navigator.userAgent का उपयोग करें।

जैसा कि अन्य ने संकेत दिया है, HTTP शीर्षलेख उपलब्ध नहीं हैं, लेकिन आपने विशेष रूप से रेफरर और उपयोगकर्ता-एजेंट के बारे में पूछा है, जो जावास्क्रिप्ट के माध्यम से उपलब्ध हैं।

+0

क्या आपके पास एक संदर्भ है जहां मुझे सभी उपलब्ध मूल्य मिल सकते हैं? – dacracot

+0

मुझे परवाह नहीं है कि यह अप्रत्यक्ष रूप से उपलब्ध है, इसलिए प्रश्न के अपने अज्ञानी वाक्यांश में बहुत कुछ न पढ़ें। – dacracot

+0

@GrantWagner: मुझे यह जानने की ज़रूरत है कि ['Originheader सेट है] (http://stackoverflow.com/q/26247041/2284570)। – user2284570

7

लगभग परिभाषा के अनुसार, क्लाइंट-साइड जावास्क्रिप्ट http अनुरोध के प्राप्त होने पर नहीं है, इसलिए इसमें पढ़ने के लिए कोई शीर्षलेख नहीं है। आमतौर पर, आपकी जावास्क्रिप्ट एक http प्रतिक्रिया का परिणाम है। यदि आप अपनी प्रतिक्रिया उत्पन्न करने वाले http अनुरोध के मान प्राप्त करने का प्रयास कर रहे हैं, तो आपको जेनरेट किए गए जावास्क्रिप्ट में उन मानों को एम्बेड करने के लिए सर्वर साइड कोड लिखना होगा।

सर्वर-साइड कोड क्लाइंट साइड कोड उत्पन्न करने के लिए थोड़ा मुश्किल हो जाता है, इसलिए सुनिश्चित करें कि आपको वही चाहिए। उदाहरण के लिए, यदि आप उपयोगकर्ता-एजेंट की जानकारी चाहते हैं, तो आपको ब्राउज़र पहचान के लिए जावास्क्रिप्ट प्रदान करने वाले विभिन्न मान प्राप्त करने के लिए पर्याप्त मिल सकता है। Navigator.appName और navigator.appVersion के साथ शुरू करें।

0

मुझे लगता है कि Google कुछ डेटा सर्वर-साइड - याद रखें, जब कोई पृष्ठ आपके ब्राउज़र में लोड होता है जिसमें Google Analytics कोड है, तो आपका ब्राउज़र Google के सर्वर से अनुरोध करता है; Google इस तरह से डेटा को पृष्ठ में एम्बेडेड जावास्क्रिप्ट के माध्यम से प्राप्त कर सकता है।

+0

नहीं, Sourceforge.net पर मेरे मामले में, Google का कोड मेरे स्थिर एचटीएमएल में एम्बेडेड जावास्क्रिप्ट है। सर्वर-साइड निष्पादन की शून्य संभावना है। – dacracot

+0

या क्या आप _their_ सर्वर पर हैं? – dacracot

+0

मेरा मतलब है _their_ सर्वर - पृष्ठ लोड होने पर आपका ब्राउज़र उनके सर्वर से अनुरोध करता है। –

5

इसे जावास्क्रिप्ट के माध्यम से एक्सेस किया जा सकता है क्योंकि यह लोड किए गए दस्तावेज़ की संपत्ति है, न कि इसके माता-पिता के।

यहां एक त्वरित उदाहरण है:

<script type="text/javascript"> 
document.write(document.referrer); 
</script> 

PHP में एक ही बात होगी:

<?php echo $_SERVER["HTTP_REFERER"]; ?> 
0

Referer और उपयोगकर्ता के एजेंट अनुरोध हेडर, नहीं प्रतिक्रिया हेडर हैं।

इसका मतलब है कि उन्हें ब्राउज़र द्वारा भेजा जाता है, या आपका AJAX कॉल (जिसे आप मान संशोधित कर सकते हैं), और HTTP प्रतिक्रिया प्राप्त करने से पहले उनका निर्णय लिया जाता है।

तो मूल रूप से आप एक HTTP शीर्षलेख नहीं मांग रहे हैं, लेकिन एक ब्राउज़र सेटिंग।

दस्तावेज़.referer और navigator.userAgent से प्राप्त मान वास्तविक हेडर नहीं हो सकता है, लेकिन ब्राउज़र की एक सेटिंग हो सकती है।

+0

मैं अभी इस प्रश्न पर आया क्योंकि मुझे यह जानने की जरूरत है कि ['मूल' हैडर सेट है) (http://stackoverflow.com/q/26247041/2284570)। – user2284570

-9
var ref = Request.ServerVariables("HTTP_REFERER"); 

किसी अन्य सर्वर चर नाम को उद्धरण के भीतर टाइप करें।

+2

यह जावास्क्रिप्ट से कैसे संबंधित है? – nevermind

+0

एफवाईआई: यह एएसपी है लेकिन यह जावास्क्रिप्ट नहीं है। –

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