netcore3.0框架已集成了Microsoft.AspNetCore.Mvc.Cors包,因此不需要單獨引用。
在ConfigureServices中添加Cors策略服務
services.AddCors(options => { options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials()); });
在Configure中添加到中間件中
app.UseCors("AllowAllOrigins");
【注:策略名可以任意自定義,但是前后必須對應,當然可以設置多個策略;注意中間件放置的位置,在app.UseRouting()和app.UseEndPoints()之間】
》》》你以為這樣就結束了嗎?運行起來發現報錯了:
原因是新版的Cors中間件已經阻止使用允許任意Origin,也就是說即使你配置了AllowAllOrigin()也不會生效。解決辦法是使用WithOrigins進行設置:
【注:URL地址最后不能添加'/',如果以'/'終止,比較將返回false並且不返回任何標頭】
builder.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(new []{"http://localhost:5000"});