2016-02-12 248 views
2

嘿,我試圖找到一些代碼,讓我知道什麼域名的POST請求到Web服務來自。WEB API 2獲取請求的客戶端域名

舉個例子:

如果Web服務是在域:

bob.com/webService/Postsomething 

而且客戶端加載一個網頁最多域:一旦Web服務被點擊

bill.com/postpage.html 

關閉在html頁面上使用AJAX我希望能夠從post函數調用以下信息:

bill.com 

到目前爲止,我只能獲得Web服務所在的IP和主機名,而而不是他們要求從Web服務獲取信息的客戶端域。

回答

4

您可以使用referrer HTTP header

public HttpResponseMessage Get() 
{ 
    Uri referrer = Request.Headers.Referrer; 
    if (referrer) 
    { 
     string clientDomain = referrer.GetLeftPart(UriPartial.Authority); 
    } 

    ... 
} 

當然,這頭不保證現在和你絕對不能依賴它,因爲做的HTTP請求的客戶端可以簡單地決定不將其發送。在使用之前,您應該始終檢查它是否爲空。

+0

感謝您的幫助,Darin。這工作。 – StealthRT