В своем основном проекте Asp.net я использую Microsoft.AspNetCore.App Version = "2.2.1"
и вызвать AddCors в сервисе Startup
Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
);
});
.....
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors(policyName: "CorsPolicy");
....
Controller
:
[Route("api/[controller]")]
[EnableCors("CorsPolicy")]
public class ManageUsersController : Controller
{ ...
В angular 5 App при вызове Web API показывать эту ошибку в консоли браузера
Доступ к XMLHttpRequest по адресу
'http://localhost:5000/api/Account/LoginByPortal' от происхождения
'http://localhost:4200' заблокирован политикой CORS: Ответ на
предварительный запрос не проходит проверку контроля доступа: значение
Заголовок «Access-Control-Allow-Origin» в ответе не должен быть
подстановочный знак '*', когда режим учетных данных запроса 'include'.
режим учетных данных запросов, инициированных XMLHttpRequest,
управляется атрибутом withCredentials.
угловой сервис:
loginByPortal(credentials: Credentials): Observable<userLoginViewmodel> {
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
return this.http
.post(`${this.appConfig.apiEndpoint}/Account/LoginByPortal`, credentials,
{ headers: headers, withCredentials: true /* For CORS */ })
.map(response => response || {})
.catch((error: HttpErrorResponse) => Observable.throw(error));
}
Я не хочу использовать .WithOrigins("http://localhost:4200"
Я хочу использовать AllowAnyOrigin In CoresPloicy
В чем проблема? Как я могу решить это?