2013-01-04 6 views
5

संभव डुप्लिकेट:
How to manually set REFERER header in Javascript?संदर्भदाता के मान का बदलना

document.referrer का मूल्य कैसे बदलें?

मैं इस

<body> 
<center><a href="test.php" target="_self">self</a></center> 
<script type="text/javascript"> 
    alert(document.referrer); 
    document.referrer="test"; 
    alert(document.referrer); 
</script> 
</body> 

की कोशिश की यह काम नहीं कर रहा, किसी भी विचार?

+2

आप क्या करने की कोशिश कर रहे हैं? – SLaks

+1

रेफरर स्पूफिंग को रोकने के कारण http://stackoverflow.com/questions/9580575/how-to-manually-set-referer-header-in-javascript – Roonaan

+1

जैसा कोई नहीं हो सकता है http://stackoverflow.com/प्रश्न/1267550/बदलते-द-http-referer-in-जावास्क्रिप्ट – SeanLi

उत्तर

8

आप सीधे रेफरर संशोधित नहीं कर सकते, लेकिन आप history.pushState()/history.replaceState() का उपयोग एक नया URL पुश करने के लिए कर सकते हैं ब्राउज़र इतिहास में (प्रदान किया गया यूआरएल जिसे आप धक्का देना चाहते हैं, वही डोमेन है), फिर जब आप नेविगेट करते हैं, तो नया यूआरएल रेफरर होगा।

कृपया ध्यान दें कि इतिहास pushState का उपयोग कर जोड़ तोड़ एक नया इतिहास प्रविष्टि जोड़ देता है, लेकिन पेज देखा जा रहा ही रहता है, और उपयोगकर्ता दो बार जाने के लिए वापस एक वास्तविक पेज अपने ब्राउज़र के "वापस" बटन दबाएँ करना होगा।

हालांकि, यदि आप replaceState का उपयोग करते हैं, तो आप उस पृष्ठ से वापस आ रहे हैं, जिसे आप रेफरर से छिपाना चाहते हैं, नए सेट यूआरएल पर जायेगा, इसलिए सुनिश्चित करें कि जो कुछ भी आप इसे बदलते हैं, उसे उपयोगकर्ता को मूल पृष्ठ पर वापस रीडायरेक्ट करता है उन्हें 404 या एक पूरी तरह से अलग पृष्ठ पर भेजने का।

+1

ध्यान दें कि 'pushState' फ़ंक्शन एक ही डोमेन पर प्रतिबंधित है नीति। डोमेन बदलें अनुमति नहीं है। –

+0

आप नायक हैं। धन्यवाद –

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