Я, должно быть, делаю что-то не так, но не могу понять;кажется, это проблема CORS из того, что я могу сказать.Мне нужно предоставить Access-Control-Expose-Headers: *
любому источнику, но ядро dotnet 2.1 не выполняет то, что я ожидаю.
Соответствующий код Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
//Mapping settings to POCO and registering with container
var settings = new AppSettings.ReportStorageAccountSettings();
Configuration.Bind(nameof(AppSettings.ReportStorageAccountSettings), settings);
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyHeader()
.AllowAnyMethod()
.AllowAnyOrigin()
.AllowCredentials();
});
});
services.AddSingleton(settings);
services.AddApiVersioning();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseCors("AllowAll");
app.UseHttpsRedirection();
app.UseMvc();
}
Это приложение размещено в Azure иЯ добавил запись *
в настройки CORS в Azure просто для хорошей меры.Теперь, когда клиентское приложение (которое также размещается в Azure) делает пост-запрос, заголовки не доступны через JS, а Access-Control-Expose-Headers: *
отсутствует в ответе.Тем не менее, я вижу заголовки при проверке ответа сети и при использовании Fiddler.Я пробовал Axios и Jquery для доступа к заголовкам, чтобы исключить любые проблемы с JS.Что я здесь не так делаю?
В контроллере я отвечаю:
Response.Headers.Add("Location", $"api/someLocation");
return StatusCode(StatusCodes.Status202Accepted);