Мне надоела ошибка CORS в. NET Приложение Core Web API. Я сделал все настройки, как мне кажется.
Вот что я сделал
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors(options =>
options.WithOrigins("http://localhost:4200/")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowAnyMethod());
//app.UseCors(builder => builder
// .AllowAnyOrigin()
// .AllowAnyMethod()
// .AllowAnyHeader()
// .AllowCredentials());
app.UseHttpsRedirection();
app.UseRouting();
}
Даже сейчас это вызывает следующую ошибку:
Доступ к XMLHttpRequest в ' https://localhost: 44331 / api / kip 'from origin' http://localhost: 4200 'заблокировано политикой CORS: заголовок' Access-Control-Allow-Origin 'не присутствует на запрошенном ресурсе.
Я вызываю его из Angular
Вот мой вызывающий скрипт
getProjects() {
let url:string=this.isServer?"http://localhost:51071/webservice1.asmx":"https://localhost:44331";
console.info(url);
return this.client.get(url+'/api/kip', {
withCredentials: true,
responseType: 'json'
});
}
Также я установил точку останова на последняя строка API перед возвратом, она доходит до нее без каких-либо проблем. Поэтому после вызова return он вызывает ошибку. Также я пробовал API отдельно, который возвращает JSON.
Вот мой контроллер.
// GET: api/Kip
[HttpGet]
public KipProjects Get()
{
KipProjects proj = new KipProjects();
kip keyedin = new kip();
proj=keyedin.getKeyedinReport();
return proj;
}