Используя angular 8 в качестве клиента, .NetCore 2.2 Web API, когда я пытаюсь сделать пост-запрос, он сначала запрашивает опцию со статусом 204, затем он запрашивает пост-запрос, который отправляется на сервер, и я могу отследить это в моем контроллере, но когда действие контроллера хочет вернуть данные, это терпит неудачу. Интересно, что если я снова, без задержки, отправлю тот же почтовый запрос, он получит успех!
то же действие контроллера вызывается без задержки.
I Я должен добавить, что в моем angular я использую сигнализатор между запросами, и я изменил некоторые политики Cors, это имеет какое-либо отношение к этому?:
namespace testAPI
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
services.AddSingleton<IChatRoomService, ChatController>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
//before signalr
//builder.AllowAnyOrigin()
// .AllowAnyMethod()
// .AllowAnyHeader();
//after signalr
builder
.AllowAnyHeader()
.AllowAnyMethod()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();
}));
services.Configure<BrotliCompressionProviderOptions>(options =>
{
options.Level = CompressionLevel.Optimal;
});
services.Configure<GzipCompressionProviderOptions>(options =>
{
options.Level = CompressionLevel.Optimal;
});
services.AddResponseCompression(options =>
{
options.Providers.Add<BrotliCompressionProvider>();
options.Providers.Add<GzipCompressionProvider>();
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseResponseCompression();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
#region SignalR
app.UseCors("MyPolicy"); //after signalr
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chat");
routes.MapHub<ChatAdminHub>("/chat/admin");
});
#endregion
app.UseMvc();
}
}
}