У меня проблемы с CORS с моим веб-приложением ASP.NET Core, которое развернуто как служба приложений Azure.Внешний интерфейс развертывается как другая служба приложений.Когда я пытаюсь получить доступ к API от внешнего интерфейса, я получаю следующую ошибку:
Не удалось загрузить https://chatclassifier.azurewebsites.net/chatcontroller/getchatData: Ответ на запрос предпечатной проверки не проходит проверку контроля доступа: Значениезаголовок «Access-Control-Allow-Credentials» в ответе - «», который должен быть «true», если режим учетных данных запроса «include».Происхождение 'https://chatclassifierangularfrontend20180924084838.azurewebsites.net' поэтому не допускается.Режим учетных данных запросов, инициированных XMLHttpRequest, контролируется атрибутом withCredentials.
Я использую некоторые файлы cookie для передачи данных между клиентом и сервером.
Я настроил больше CORSПолитика в ASP.NET Core работает следующим образом в Setup.cs
Настройка служб:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowAllHeaders",
builder =>
{
builder
.WithOrigins("https://XXXXXXXXXXangularfrontend20180924084838.azurewebsites.net")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.Configure<FormOptions>(x =>
{
x.ValueLengthLimit = int.MaxValue;
x.MultipartBodyLengthLimit = int.MaxValue;
});
}
Настройка:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var cookiePolicyOptions = new CookiePolicyOptions
{
Secure = CookieSecurePolicy.SameAsRequest,
MinimumSameSitePolicy = SameSiteMode.None
};
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
}
app.UseCors("AllowAllHeaders");
app.UseCookiePolicy(cookiePolicyOptions);
app.UseHttpsRedirection();
app.UseMiddleware(typeof(ApiExceptionHandling));
app.UseMvc();
}
Я не добавил никаких других связанных с CORSкод в другом месте в моем коде API.Я попытался добавить атрибут «AllowAllHeaders» CORS в мой контроллер, но это также не сработало.
Кроме того, я добавил следующую строку кода в конфигурацию моего веб-приложения в Azure в CORS.
Очевидно, я изменил имя URL-адреса, добавив в него XXXXXX, и убедился, что они совпадают как в моем портале Azure, так и в коде веб-приложения.
Любая помощь будет принята с благодарностью!