2017-02-20 51 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