2012-08-06 11 views
8

Ben, bu javascriptSayfa jiletli kökeni nasıl alınır? mvc sayfaları oluştururken

window.location.origin 

ancak sunucu tarafında eşdeğer arıyorum. Örneğin

, bunu ben "http: //" sahip olduğunu

http://website.com 

Onun önemli dönecekti burada http://website.com/123, ise bölüm

+0

Zaten sorulmuş olan çıktı ... [MVC 3'te şu anki sayfa URL'si nasıl alınır?] Olası kopyası (http://stackoverflow.com/questions/5304782/how-to-get-current-page-url -in-mvc-3) –

cevap

14

içerecektir deneyebilirsiniz senin HTTP/HTTPS , Bağlantı noktası (varsa) ve Ana Makine Adı/IP.

+0

+1: Bu en iyi cevaptır. –

+0

+1: Temiz ve okunabilir – Manatherin

+0

Bu kadar, nazik bay – odle

0

Sana Request.Url veya RawUrl arayan düşünüyorum . Request.Url adresinin http: // https farkı hakkında bilgi vermesi için

Uri.Scheme.

+0

Request.Url ayrıca '/ 123' içerecektir. –

+0

@JohnH, Cevabı güncelledim ... Ayrıca Manatherin'in cevabı (+1) zaten hepsini içeriyor. –

+0

Bunların hiçbiri talep edilenleri vermeyecektir. 'Http: // localhost: 63105/home/index', 'http: // localhost: 63105/home/index' döndürecek ve Request.RawUrl'/home/index 'değerini döndürecektir. . Her iki cevabımız da Erik'inki kadar kötü, bu yüzden benimkini kaldıracağım. –

1

Eğer

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

Ya

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

Kurumu ı tutar

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

hayranıyım port numarasını

+0

Otoritesinizde ekstra bir '' 'olacak. –

+0

@ErikPhilips Testimde – Manatherin

+0

gibi görünmüyorsa, evet haklısın, portun url olduğunu unuttum, çok nadiren kullanıyorum. –

-1

javascript'te window.location.origin, protokolü, varsa (varsa) bağlantı noktasını ve geçerli URL'nin uzantısını döndürür.

Aynı bilgileri bir URL'den almak isterseniz, kabul edilen yanıtlar size bunu sağlayacaktır.

Aynı davranışı isterseniz, javascript'in bir parçası sunucu yönteminizi çağırıyor ve nereden arandığını öğrenmek istiyorsanız, HttpRequest.URLReferrer'ı denetleyebilirsiniz. Bununla birlikte, bu kolayca aldatılabilir ve bu nedenle güvenilir değildir.

+0

'UrlReferrer' kullanımı tehlikeli! [Şüpheli/herhangi bir şeye ayarlanmış olabilir] (https://en.wikipedia.org/wiki/Referer_spoofing). Doğru bir şekilde kaçmıyorsanız, büyük bir solucan kutusu açar (örneğin XSS). Ayrıca, Google.com'dan gelen sayfaya geldiğimde, yönteminiz web sitesi.com değil, google.com'u döndürecektir. Kullanıcı girişine asla güvenme; referrer tam olarak budur. – RobIII

+0

@RobIII Haklısınız.Cevabımı orijinal fikrimi yansıtacak şekilde güncelledim. –

İlgili konular