获取C#api控制器

时间:2016-12-28 16:05:00

标签: c# asp.net-web-api cors httpwebrequest httprequest

当我用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) {

});

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

CORS正常运作。

3 个答案:

答案 0 :(得分:12)

您正在寻找的可能是原始标题。如果您正在进行跨域请求,所有现代浏览器都会发送它。

ApiController中,您可以像这样获取它:

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

答案 1 :(得分:2)

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

IEnumerable<string> originValues;
Request.Headers.TryGetValues("Origin", out originValues)

答案 2 :(得分:0)

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

// or

StringValues originValues;
Request.Headers.TryGetValue("Origin", out originValues);