#asp.net-core #cors
#asp.net-core #cors
Вопрос:
Я знаю, что этот вопрос задавался много раз, но решения, доступные в Интернете, не работают для меня. Я пытаюсь сделать post-запрос из Angular следующим образом
ApiResponse(formVal,url){
return this._Service.AddUser(this.url,formInput)
.toPromise().then(res=>{
return res;
})
}
Но я получаю эту ошибку доступа к XMLHttpRequest по адресу ‘http://localhost:61382/api » из источника «http://localhost:4200 ‘ был заблокирован политикой CORS: на запрошенном ресурсе отсутствует заголовок ‘Access-Control-Allow-Origin’.даже у меня есть corsPolicy в Asp.Net и это происходит только для запроса post.
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(opt =>
{
opt.AddPolicy("CorsPolicy",
c => c.AllowAnyOrigin()
.AllowAnyHeader()
.AllowCredentials()
.AllowAnyMethod());
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseCors("CorsPolicy");
}
app.UseAuthentication();
app.UseMvc(routes => routes.MapRoute(
"default", "api/{controller}/{action}/{id?}"
));
}
}
Можете ли вы мне помочь?Спасибо!
Комментарии:
1. Можете ли вы показать заголовки вашего контроллера и вашего действия?
Ответ №1:
Попробуйте переместить app.UseCors («CorsPolicy») за пределы if (env.IsDevelopment ());
и измените свои сервисы.Добавьте исправления в синтаксис anotner:
services.AddCors(opt => opt.AddPolicy("CorsPolicy", c =>
{
c.AllowAnyOrigin()
.AllowAnyHeader()
.AllowCredentials()
.AllowAnyMethod();
}));
Комментарии:
1. Спасибо, это была проблема