Получить запрос источника в С# API-контроллере
Есть ли способ, как я могу получить значение источника запроса в контроллере API, когда я вызываю конечную точку API с помощью вызова AJAX?
Например, я звоню с www.xyz.com:
$http({
url: 'http://myazurewebsite.azurewebsites.net/api/ValueCall/CheckForExistingValuers',
method: "GET",
params: { loanID: $scope.loanIdPopup }
}).success(function (data) {
}).error(function (data) {
});
Как только я получу значение www.xyz.com?
CORS работает правильно.
Ответы
Ответ 1
То, что вы ищете, вероятно, является заголовком origin. Все современные браузеры отправляют его, если вы выполняете кросс-доменный запрос.
В ApiController
вы получите его так:
if (Request.Headers.Contains("Origin"))
{
var values = Request.Headers.GetValues("Origin");
// Do stuff with the values... probably .FirstOrDefault()
}
Ответ 2
Вы можете получить его из методов API через текущую коллекцию заголовков HTTP-запросов:
IEnumerable<string> originValues;
Request.Headers.TryGetValue("Origin", out originValues)
Ответ 3
Вы пробовали внутри своего контроллера что-то вроде:
public IHttpActionResult Post()
{
//get host from where the request came
string host = this.Request.Headers.Host;
return Ok();
}