2013-07-19 8 views
12

में "#" के बाद यूआरएल प्राप्त करें मुझे सर्वर मिडलवेयर (express.js का उपयोग करके) पर यूआरएल प्राप्त करने की आवश्यकता है। मैं req.url का उपयोग, लेकिन जब यूआरएल /#some/url req.url रिटर्न / ...एक्सप्रेस.जेएस मिडलवेयर अनुरोध

req.path के साथ एक ही .. से शुरू होता है

वहाँ एक रास्ता express.js में # के बाद यूआरएल पाने के लिए है?

+0

सर्वर की तरफ से यूआरएल हैश (#) कैसे प्राप्त करें [http://stackoverflow.com/questions/317760/how-to-get-url-hash-from-server-side) –

+2

यहां एक अच्छी व्याख्या है http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not-in-the-server-side – Guidone

+0

# -part है सर्वर में स्थानांतरित नहीं किया गया। –

उत्तर

-1

अंतर्निहित urlmodule का उपयोग करें जो यूआरएल को पार्स करने और urlObject बनाने के लिए नोड.जेएस में उपलब्ध है। इसमें hash खंड संपत्ति होगी जिसमें हैश खंड आप चाहते हैं।

const url = require('url') 
const urlObj = url.parse(req.url) 
console.log(urlObj.hash) // #some/url 
+2

जब तक '#' -part सर्वर पर स्थानांतरित नहीं किया जाता है। – zerkms

4

सं यूआरएल # प्रतीक के साथ शुरू के हिस्से के सर्वर के लिए भेजा कभी नहीं किया गया है।

# एक यूआरएल में प्रतीक fragment identifier पेश करना है। इसका उपयोग पृष्ठ के एक विशिष्ट भाग से जोड़ने के लिए किया जाता है। यदि कोई ब्राउज़र /#some/url लोड करता है, तो यह प्रभावी रूप से / लोड करेगा, और id="some/url" (यदि मौजूद है) के साथ HTML तत्व पर जाएं। यह खंड पहचानकर्ता ब्राउज़र के लिए केवल प्रासंगिक है, इसलिए इसे HTTP अनुरोध के साथ नहीं भेजा गया है।

क्या आप फिर भी कर सकते हैं, window.location.hash का मूल्य बाहर पढ़ सकते हैं और एक XMLHttpRequest का उपयोग कर सर्वर को भेजने के लिए ग्राहक के पक्ष जावास्क्रिप्ट उपयोग कर रहा है है। (See other Stack Overflow post.)

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