2012-08-06 2 views
8

MVCページを構築しながら、私はこのJavaScriptカミソリのページ原点を取得するには?

window.location.origin 

が、サーバ側の等価を探しています。例えば

、あなたはそれは私が "のhttp://" を持っていることを

http://website.com 

その重要戻ってくるここ http://website.com/123、 であれば一部

+0

既に尋ねられました... [MVC 3で現在のページURLを取得する方法]の複製が可能です(http://stackoverflow.com/questions/5304782/how-to-get-current-page-url -in-mvc-3) –

答えて

14

が含まれます、Port(適用可能な場合)、およびHostName/IP。

+0

+1:これは最高の答えです。 –

+0

+1:清潔で読みやすい – Manatherin

+0

それは、親切な先生 – odle

0

私はあなたがRequest.UrlやRawUrlを探していると思いますが。

Uri.SchemeのRequest.Urlは、http/httpsの違いについての情報を提供します。

+0

Request.Urlには '/ 123'も含まれます。 –

+0

@JohnH、私は答えを更新しました...また、Manatherinの答え(+1)はすでにすべてを含んでいます。 –

+0

これらのどちらも要求されたものを提供しません。次のURLを 'http:// localhost:63105/home/index'とすると、Request.Urlは' http:// localhost:63105/home/index'を返し、Request.RawUrlは '/ home/index'を返します。 。私たちの答えはどちらもErikのものよりも劣っているので、私は私のものを削除します。 –

1

あなたは当局

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

それとも

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

を試みることができる私は

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

のファンはあなたのHTTP/HTTPSを保持していたポート番号

+0

私はあなたの当局に追加の ':'を持っていると思います。 –

+0

@ErikPhilipsそれは私のテストではそうではないようです – Manatherin

+0

あなたは正しいです、ポートがURLにあるのを忘れてしまった、私はまれにそれを使用します。 –

-1

javascriptのwindow.location.originは、現在のurlのプロトコル、ポート(存在する場合)、ドメイン、および拡張子を返します。

URLから同じ情報を取得する場合は、受け入れられた回答がそれを提供します。

同じ動作が必要な場合、つまりjavascriptがサーバーメソッドを呼び出していて、どこから呼び出しているかを知りたい場合は、HttpRequest.URLReferrerを調べることができます。しかし、これは簡単になりすますことができ、したがって信頼できません。

+0

'UrlReferrer'を使うのは危険です!それは[何でも設定できます](https://en.wikipedia.org/wiki/Referer_spoofing)です。あなたが正しくエスケープしていない場合、それはワームの大きな缶を開く(例えばXSS)。また、私がGoogle.comから来るページにヒットした場合、あなたのメソッドはwebsite.comではなくgoogle.comを返します。ユーザー入力を信頼しないでください。リファラーはまさにそれです。 – RobIII

+0

@RobIIIあなたは正しいです。私の元の意見を反映するために私の答えを更新しました。 –

関連する問題