Search code examples
c#asp.net-web-apicorshttpwebrequesthttprequest

Get request origin in C# api controller


Is there a way how can I can get request origin value in the api controller when I'm calling some api endpoint with ajax call?

For example I'm making this call from www.xyz.com:

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

}).error(function (data) {

});

Once on the api side, how can I get the www.xyz.com value?

CORS is working properly.


Solution

  • What you're looking for is probably the origin-header. All modern browsers send it along if you're doing a cross domain request.

    In an ApiController you fetch it like so:

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