У меня есть приложение .NET Core 2.1, и я добавил политику CORS в ConfigureServices
:
services.AddCors(options => options.AddPolicy("CorsPolicy",
builder =>
{
builder.AllowAnyMethod().AllowAnyHeader()
.WithOrigins("http://localhost:4200")
.AllowCredentials();
}));
и затем в Configure
:
app.UseCors("CorsPolicy");
Локально, это прекрасно работает. Когда я выполняю развертывание в своем веб-приложении Azure, оно не работает. Мой клиент получает:
«Ответ на запрос предварительной проверки не проходит проверку контроля доступа: значение заголовка« Access-Control-Allow-Credentials »в ответе равно« », которое должно быть« истиной », если режим учетных данных запроса« включать » «"
Я могу воссоздать эту точную ошибку, удалив строку .AllowCredentials()
локально.
Из документов я понимаю, что Azure CORS принимает любой код CORS:
«Не пытайтесь использовать App Service CORS и ваш собственный код CORS вместе. При совместном использовании App Service CORS имеет преимущество, а ваш собственный код CORS не действует».
Кажется, я не могу помешать Azure Web Apps вступить во владение. Я пытался удалить CORS с помощью CLI, но не могу полностью избавиться от него.
az resource update --name web --resource-group MyGroup --namespace Microsoft.Web --resource-type config --parent sites/MySite --set properties.cors.allowedOrigins="" --api-version 2015-06-01
Все, что нужно, это установить значение параметраOOOrigin в null. Но это все еще берет верх. Как удалить все следы CORS из Azure, чтобы использовался только мой код? Или, в худшем случае, как я могу сделать эквивалент «AllowCredentials» в Azure?