Немного поэкспериментировав, мне показалось, что AllowAllHeaders
была необходимой частью, поэтому я покопался немного глубже, чтобы посмотреть, какие заголовки передаются, и, как ни странно, кажется, что это заголовок Content-Type
, к которому он подключился.
Так что это сработало (из Chrome в JSFiddle):
options.AddPolicy("PostPolicy",
builder => builder.AllowAnyOrigin()
.WithMethods("POST")
.WithHeaders("x-chmura-cors", "Content-Type"));
Что удивительно, поскольку я бы подумал, что стандартные заголовки (например, Content-Type
) не обязательно должны быть явно
Сообщение об ошибке, конечно, было совершенно бесполезным.
Редактировать
Итак, согласно этому: https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.1#preflight-requests (спасибо @spender), проблема в том, что Content-Type
проходит автоматически, только если его значение:
Заголовок Content-Type, если установлен, имеет одно из следующих значений:
- application / x-www-form-urlencoded
- multipart / form-data
- text / plain
У меня был мой наборна application/json
и я думаю, это было то, что ему не понравилось.