Доступ к XMLHttpRequest в ядре In Asp.net 2.2.1 - PullRequest
0 голосов
/ 24 января 2019

В своем основном проекте 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
В чем проблема? Как я могу решить это?

1 Ответ

0 голосов
/ 24 января 2019

Вот решение: https://stackoverflow.com/a/53790841/8801075

app.UseCors(builder => builder
                .AllowAnyHeader()
                .AllowAnyMethod()
                .SetIsOriginAllowed((host) => true)
                .AllowCredentials()
            );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...