Existe-t-il un moyen de récupérer la valeur d'origine de la demande dans le contrôleur api lorsque j'appelle un point de terminaison api avec un appel ajax?
Par exemple, je fais cet appel depuis www.xyz.com:
$http({
url: 'http://myazurewebsite.azurewebsites.net/api/ValueCall/CheckForExistingValuers',
method: "GET",
params: { loanID: $scope.loanIdPopup }
}).success(function (data) {
}).error(function (data) {
});
Une fois du côté de l'API, comment puis-je obtenir la valeur www.xyz.com?
CORS fonctionne correctement.
Ce que vous recherchez est probablement l'en-tête Origin. Tous les navigateurs modernes l'envoient si vous faites une demande interdomaine.
Dans un ApiController
vous le récupérez comme ceci:
if (Request.Headers.Contains("Origin"))
{
var values = Request.Headers.GetValues("Origin");
// Do stuff with the values... probably .FirstOrDefault()
}
Vous pouvez le récupérer à partir des méthodes API via la collection actuelle d'en-têtes de requête HTTP:
IEnumerable<string> originValues;
Request.Headers.TryGetValue("Origin", out originValues)