2017-02-20 70 views
1

我有一個C# WebService通過ajax調用(javascript)。 是否可以檢索請求的URL?C#WCF:獲取請求者URL

實施例:

test/index.htm升調用經由 「GET」 的web服務。 我可以在服務器端檢索此調用URL(test/index.html)嗎?

對不起我這個是新的...

謝謝!

回答

1

是的,這是可以做到的。首先,你需要將以下添加到您的Web.config文件

<configuration> 
    <system.servicemodel> 
     <servicehostingenvironment aspnetcompatibilityenabled="true">  
     </servicehostingenvironment> 
    </system.servicemodel> 
</configuration> 

正在請求Web服務方法被稱爲一個引薦的URL。推薦鏈接的URL存儲在當前正在處理的Http請求的HttpContext對象的Current屬性中。您可以通過下面的代碼得到這個值:

string referrer = System.Web.HttpContext.Current.Request.UrlReferrer.ToString(); 

您也可以使用以下方法:

string referrer = WebOperationContext.Current.IncomingRequest.Headers[System.Net.HttpRequestHeader.Referer]; 

第二種方法基本上讀取HTTP請求的Headers並獲取價值爲您服務。

+0

謝謝。在這裏,我遇到了UrlReferrer爲空的問題。你知道這個問題嗎? – Schakron

+0

好的,明白了。它是空的,因爲直接通過瀏覽器調用服務,而不是來自應用程序。這是有道理的。謝謝 – Schakron