在C#api控制器中获取请求源

Laz*_*ale 12 c# httpwebrequest httprequest cors asp.net-web-api

当我用ajax调用调用某个api端点时,有什么方法可以在api控制器中获取请求原点值?

例如,我正在从www.xyz.com拨打这个电话:

$http({
    url: 'http://myazurewebsite.azurewebsites.net/api/ValueCall/CheckForExistingValuers',
    method: "GET",
    params: { loanID: $scope.loanIdPopup }
}).success(function (data) {

}).error(function (data) {

});
Run Code Online (Sandbox Code Playgroud)

一旦进入api方面,我怎样才能获得www.xyz.com的价值?

CORS正常运行.

smo*_*nes 15

您正在寻找的可能是起源头.如果您正在进行跨域请求,所有现代浏览器都会发送它.

ApiController你拿它像这样:

if (Request.Headers.Contains("Origin"))
{
    var values = Request.Headers.GetValues("Origin");
    // Do stuff with the values... probably .FirstOrDefault()
}
Run Code Online (Sandbox Code Playgroud)


A. *_*rel 8

var originValue = Request.Headers["Origin"].FirstOrDefault();

// or

StringValues originValues;
Request.Headers.TryGetValue("Origin", out originValues);
Run Code Online (Sandbox Code Playgroud)


iva*_*ax9 6

您可以通过当前的HTTP请求标头集合从API方法中获取它:

  IEnumerable<string> originValues;
  Request.Headers.TryGetValue("Origin", out originValues)
Run Code Online (Sandbox Code Playgroud)

  • 在 .Net Core 中执行此操作的正确方法 (2认同)