В C # с использованием WebApi2 я определил следующую конечную точку, используя WebApi2
:
[EnableCors("*", "*", "Post", SupportsCredentials = true)]
[HttpPost]
[Route("myRouting")]
public HttpResponseMessage MyEndPoint()
{
//...some code
}
и работает, вызывая его с:
var request = new XMLHttpRequest();
request.open('POST', url, true);
request.withCredentials = true;
request.send();
Попытка обновить его до F # .Net Core без успеха:
let webApp =
choose [
route "/" >=> text "Description"
POST >=> routef "myRouting" myEndPoint ]
let configureCors (builder : CorsPolicyBuilder) =
builder.AllowAnyOrigin()
.AllowAnyHeader()
.WithMethods("POST")
.AllowCredentials()
|> ignore
let configureApp (app : IApplicationBuilder) =
app.UseCors(configureCors)
.UseGiraffe webApp
let configureServices (services : IServiceCollection) =
services.AddCors()
.AddGiraffe() |> ignore
Получение ошибки Значение заголовка «Access-Control-Allow-Origin» в ответе не должно быть подстановочным знаком «», если режим учетных данных запроса «include». *
Я знаю о Указание AllowAnyOrigin и AllowCredentials является небезопасной конфигурацией и может привести к подделке межсайтовых запросов. Служба CORS возвращает неверный ответ CORS, когда приложение настроено с использованием обоих методов.
Почему он работает с WebApi2
и есть ли способ заставить его работать без указания источника?