namespace eSuite.API.Middleware; /// /// Adds support for the cors options pre-flight check /// public class OptionsMiddleware { private readonly RequestDelegate _next; /// /// Default constructor /// /// public OptionsMiddleware(RequestDelegate next) { _next = next; } /// /// Called by asp.net. /// /// /// public Task Invoke(HttpContext context) { if (context.Request.Method == "OPTIONS") { context.Response.Headers.AccessControlAllowOrigin = (string)context.Request.Headers.Origin!; //context.Response.Headers.Add("Access-Control-Allow-Origin", // new[] { (string)context.Request.Headers["Origin"] }); //context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); context.Response.Headers.AccessControlAllowHeaders = new[] {"Origin, X-Requested-With, Content-Type, Accept, Authorization"}; context.Response.Headers.AccessControlAllowMethods = new[] {"GET, POST, PUT, DELETE, OPTIONS"}; context.Response.Headers.AccessControlAllowCredentials = new[] {"true"}; context.Response.StatusCode = 200; return context.Response.WriteAsync("OK"); } return _next.Invoke(context); } }