Saya tidak yakin apa yang saya lewatkan, tetapi sepertinya tidak bisa mendapatkan Kebijakan CORS saya bekerja dengan .NET Core 3.1 dan sisi klien 8 Sudut.
Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
// ...
// Add CORS policy
services.AddCors(options =>
{
options.AddPolicy("foo",
builder =>
{
// Not a permanent solution, but just trying to isolate the problem
builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
});
});
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
// Use the CORS policy
app.UseCors("foo");
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Pesan Kesalahan Sisi Klien:
Access to XMLHttpRequest at 'https://localhost:8082/api/auth/' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
MEMPERBARUI:
Meskipun saya telah mengkonfigurasi CORS tidak benar (dan jawaban yang diterima di bawah itu sebenarnya bantuan dengan itu) akar masalah adalah tidak berhubungan. Untuk konteks tambahan, aplikasi berfungsi dengan baik saat menjalankan API dan aplikasi Angular menggunakan CLI - Saya hanya mengalami masalah ini setelah menempatkan keduanya ke server web.
Masalah "sebenarnya" pada akhirnya terkait dengan koneksi SQL, yang saya temukan setelah menambahkan kesalahan flat-file logging ke API dan menjalankan jejak SQL Server untuk menemukan bahwa aplikasi tidak dapat terhubung ke SQL sama sekali.
Saya biasanya berharap ini hanya mengembalikan 500 dan saya akan menyadari masalah ini dalam hitungan 10 detik - namun kesalahan konfigurasi CORS berarti 500 tidak pernah benar-benar dikembalikan karena middleware CORS gagal terlebih dahulu. Ini sangat frustasi untuk mengatakan yang paling tidak absolut! . Namun saya ingin menambahkan bahwa di sini kalau-kalau orang lain menemukan diri mereka dalam situasi ini, karena saya "mengejar kelinci yang salah," jika Anda mau. Setelah memperbaiki konfigurasi CORS, saya menyadari bahwa masalah sebenarnya sama sekali tidak terkait dengan CORS.
TL; DR; - Kadang-kadang "Non-CORS" .NET Server-side Error Dapat Dikembalikan sebagai Kesalahan CORS Jika kebijakan CORS Tidak Diatur dengan Benar
Referensi:
https://medium.com/swlh/cors-headers-with-dot-net-core-3-5c9dfc664785
app.UseCors("foo");
sebelumnyaapp.UseHttpsRedirection();