2010-01-11 16 views
8

के माध्यम से एक स्थान हैश भेजें मेरे पास एक पृष्ठ है जहां जावास्क्रिप्ट में मैं स्थान हैश में जोड़ता हूं जैसे: location.hash = "itial_source = last_referrer "।एक रेफरर

बाद में एक विंडो। स्थानांतरण को पुनर्निर्देशित करने के लिए किया जाता है।

हालांकि रिसीवर को हैश (#) भाग के बिना अपने अनुरोध में रेफरर प्राप्त होता है।

क्या किसी भी तरह से रीडायरेक्ट के बिना प्रारंभिक पृष्ठ में यूआरएल को संशोधित करना संभव है, तो अंतिम संदर्भकर्ता वांछित है?

धन्यवाद।

उत्तर

15

पहला, एक यूआरएल के hash भाग क्लाइंट पक्ष पर ही किया जाता है। यह कभी सर्वर लॉग, अनुरोध, या REFERRER स्ट्रिंग के हिस्से के रूप में दिखाई देगा।

दूसरा, यूआरएल का एकमात्र हिस्सा जिसे क्लाइंट साइड में ताज़ा पृष्ठ के बिना बदला जा सकता है, हैश है। तो मेरे पहले बयान के साथ गठबंधन करें, और यह स्पष्ट हो जाता है कि आप जो भी चाहते हैं वह नहीं कर सकते हैं।

कार्रवाई का सबसे अच्छा तरीका यह जांचना है कि initial_referrer क्वेरी स्ट्रिंग में सेट है या नहीं। यदि ऐसा नहीं है, पृष्ठ लोड होने से पहले, उसी पृष्ठ पर रीडायरेक्ट करें लेकिन क्वेरी स्ट्रिंग में अपना मान जोड़ें। अब, जब आपका पृष्ठ location.href = के माध्यम से बदलता है तो सही रेफरर जानकारी भेजी जाएगी।

+0

हम्म ... मैं समझता हूं। यह सोच रहा था कि क्या मैं एक और अनुरोध से बच सकता हूं। –

1
location.href = redirect_url.split("#")[0] + "#" + document.referrer; 
+4

हैश कभी सर्वर पर नहीं भेजा जाएगा। इसमें केवल ग्राहक पक्ष पर आवेदन है। –

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