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。