WEB api 2 获取正在请求的客户端域
WEB api 2 getting client domain that is requesting
嘿,我正在尝试找到一些代码,让我知道对 Web 服务的 POST 请求来自哪个域。
举个例子:
如果网络服务在域上:
bob.com/webService/Postsomething
并且客户端在域上加载页面:
bill.com/postpage.html
在 html 页面上使用 AJAX 单击关闭 Web 服务后,我希望能够从其调用的 post 函数中获取以下信息:
bill.com
到目前为止,我只能获得 Web 服务所在位置的 IP 和主机名,不是 他们从 Web 服务中请求信息的客户端域来自.
您可以使用 referrer HTTP header:
public HttpResponseMessage Get()
{
var domain = Request.Headers.Referrer?.GetLeftPart(UriPartial.Authority);
...
}
当然,这个 header 不能保证存在,你绝对不能依赖它,因为发出 HTTP 请求的客户端可以简单地决定不发送它。在使用它之前,您应该始终检查它是否为 null。
嘿,我正在尝试找到一些代码,让我知道对 Web 服务的 POST 请求来自哪个域。
举个例子:
如果网络服务在域上:
bob.com/webService/Postsomething
并且客户端在域上加载页面:
bill.com/postpage.html
在 html 页面上使用 AJAX 单击关闭 Web 服务后,我希望能够从其调用的 post 函数中获取以下信息:
bill.com
到目前为止,我只能获得 Web 服务所在位置的 IP 和主机名,不是 他们从 Web 服务中请求信息的客户端域来自.
您可以使用 referrer HTTP header:
public HttpResponseMessage Get()
{
var domain = Request.Headers.Referrer?.GetLeftPart(UriPartial.Authority);
...
}
当然,这个 header 不能保证存在,你绝对不能依赖它,因为发出 HTTP 请求的客户端可以简单地决定不发送它。在使用它之前,您应该始终检查它是否为 null。