2012-08-06 9 views
8

मैं इस जावास्क्रिप्टरेज़र में पृष्ठ मूल कैसे प्राप्त करें?

window.location.origin 

लेकिन सर्वर साइड के बराबर की तलाश में हूँ, जबकि MVC पेज का निर्माण।

उदाहरण के लिए

, अगर आप यहाँ हैं http://website.com/123, यह

http://website.com 

इसकी महत्वपूर्ण मैं "http: //" है कि वापसी होगी हिस्सा

+0

बाहर निकला जो पहले से ही पूछा गया था ... संभावित डुप्लिकेट [एमवीसी 3 में वर्तमान पृष्ठ यूआरएल कैसे प्राप्त करें] (http://stackoverflow.com/questions/5304782/how-to-get-current-page-url -इन-एमवीसी -3) –

उत्तर

14

शामिल होंगे मैं

string url = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, 
              string.Empty); 

के एक प्रशंसक हूँ रहता है की कोशिश कर सकते अपने HTTP/HTTPS , पोर्ट (यदि लागू हो), और होस्टनाम/आईपी।

+0

+1: यह सबसे अच्छा जवाब है। –

+0

+1: स्वच्छ और पठनीय – Manatherin

+0

ऐसा करता है, दयालु सर – odle

0

मैं तुम्हें Request.Url या RawUrl की तलाश में लगता है ।

Uri.Scheme Request.Url आपको http/https अंतर पर जानकारी देगा।

+0

Request.Url में '/ 123' भी शामिल होगा। –

+0

@ जॉन, मैंने जवाब अपडेट किया है ... इसके अलावा मैनथेरिन के उत्तर (+1) में पहले से ही सभी शामिल हैं। –

+0

इनमें से कोई भी अनुरोध नहीं करेगा। निम्नलिखित यूआरएल को http: // localhost: 63105/home/index' पर विचार करने के लिए, Request.Url 'http: // localhost: 63105/home/index' और Request.RawUrl वापस लौटाएगा'/home/index' । हमारे दोनों उत्तर एरिक के निचले हैं, इसलिए मैं अपना हटा दूंगा। –

1

आप

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority) 

या

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Host) 

प्राधिकरण पोर्ट संख्या

+0

मुझे लगता है कि आपके पास अपनी प्राधिकरण पर अतिरिक्त ':' होगा। –

+0

@ErikPhilips यह मेरे परीक्षण – Manatherin

+0

में प्रतीत नहीं होता है ओह हाँ आप सही हैं, पोर्ट बंद हो गया था, मैं इसे शायद ही कभी उपयोग करता हूं। –

-1

जावास्क्रिप्ट में window.location.origin प्रोटोकॉल, पोर्ट (यदि कोई है), डोमेन और वर्तमान यूआरएल का विस्तार देता है।

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

यदि आप एक ही व्यवहार चाहते हैं, यानी जावास्क्रिप्ट का एक टुकड़ा आपकी सर्वर विधि को कॉल कर रहा है और आप जानना चाहते हैं कि यह कहां से कॉल कर रहा है, तो आप HttpRequest.URLReferrer का निरीक्षण कर सकते हैं। हालांकि इसे आसानी से धोखा दिया जा सकता है और इस प्रकार विश्वसनीय नहीं है।

+0

'UrlReferrer' का उपयोग करना खतरनाक है! यह [स्पूफेड/कुछ भी सेट] हो सकता है (https://en.wikipedia.org/wiki/Referer_spoofing)। यदि आप सही ढंग से भाग नहीं रहे हैं तो यह कीड़े का एक बड़ा बड़ा खुलता है। (उदाहरण के लिए एक्सएसएस)। साथ ही, जब मैं आने वाले पेज को दबाता हूं, तो कहें, Google.com आपकी विधि google.com पर वापस आएगी, न कि website.com। उपयोगकर्ता इनपुट पर भरोसा न करें; रेफरर बिल्कुल यही है। – RobIII

+0

@RobIII आप सही हैं।मेरी मूल राय को प्रतिबिंबित करने के लिए मेरा उत्तर अपडेट किया गया। –

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