У меня есть React и ASP.NET Core 2.2 SPA, у которых есть проблема с CORS в Firefox, но в Chrome и Edge все в порядке.Я создал небольшую тестовую установку, которая состоит из шаблона веб-API ASP.NET Core 2.2 с включенным CORS и приложения Create React, которое использует fetch
для вызова веб-API.
Вот ASP.NETCore Startup.cs
с включенным CORS:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyMethod().AllowAnyHeader().AllowCredentials().WithOrigins("http://localhost:3000");
}));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors("CorsPolicy");
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}
Вот страница React, которая запрашивает данные:
const App: React.FC = () => {
const [data, setData] = useState("loading ...")
useEffect(()=>{
fetch("https://localhost:44335/api/values").then(res=>res.json()).then(body=>{
setData(JSON.stringify(body));
})
},[]);
return <p>{data}</p>
}
Это отлично работает в Chrome и Edge, но я получаю следующую ошибку в Firefox:
Правильно ли я включаю CORS?или я что-то упускаю?Любая помощь приветствуется.