Ajax呼び出しでAPIエンドポイントを呼び出しているときに、APIコントローラーでリクエストのOrigin値を取得する方法はありますか?
たとえば、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は正常に動作しています。
探しているのはおそらくOrigin-headerです。クロスドメインリクエストを行う場合、最新のブラウザはすべてそれを送信します。
ApiController
では、次のようにフェッチします。
if (Request.Headers.Contains("Origin"))
{
var values = Request.Headers.GetValues("Origin");
// Do stuff with the values... probably .FirstOrDefault()
}
現在のHTTPリクエストヘッダーコレクションを介してAPIメソッドから取得できます。
IEnumerable<string> originValues;
Request.Headers.TryGetValue("Origin", out originValues)