Почтовый запрос Angular 6 Basic для API .NET Core - PullRequest
0 голосов
/ 24 августа 2018

Эта проблема была опубликована несколько раз, но я попробовал несколько решений, и они не работают для меня.Я делаю сервис API на угловом языке, который должен использовать базовую аутентификацию, чтобы получить токен на предъявителя для других конечных точек.API написан на .NET Core.

Мой код прост:

private GetToken() {
    let delta = new Date().getTime() - this.tokenTimestamp.getTime();

    const options = {
        headers: new HttpHeaders({
            'Content-Type': 'application/json', 
            'Cache-Control': 'no-cache',
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Headers': 'Origin, Content-Type, X-Auth-Token, content-type',
            'Authorization': 'Basic ' + btoa(this.user + ':' + this.pass)
        })
    };

    console.log(options);

    if (delta >= 60000) {
        this.http.post<Response>(this.url + '/api/Auth/Token/', { username: this.user, password: this.pass }, options)
        .subscribe(
        (val) => {
            console.log("POST call successful value returned in body", val);
        },
        response => {
            console.log("POST call in error", response);
        },
        () => {
            console.log("The POST observable is now completed.");
        });
    }
}

Я получаю ошибки CORS (я думаю) в своей консоли: enter image description here

Ваша помощьвысоко ценится!

1 Ответ

0 голосов
/ 24 августа 2018

Даже если кажется, что существует проблема с CORS, которая может существовать или не существовать, сначала необходимо устранить ошибку 404 Не найдено. В наших приложениях также, когда есть 404 Not Found, ошибка 404 обычно сопровождается ошибкой CORS, даже если конфигурация CORS настроена идеально.

Чтобы проверить это, откройте Почтальон. Создайте POST-запрос к вашему локальному хосту: 50897 / api / Auth / Token / и посмотрите, получаете ли вы по-прежнему 404. Если да, вы бы хотели убедиться, что ваша конечная точка в порядке.

редактирование:

В файле Startup.cs убедитесь, что это есть в Configure (..) {}

app.UseCors(builder => builder
                        .WithOrigins("http://localhost:4200", "url2") // url2 would be the IP address that your angular app is deployed under in IIS
                        .AllowCredentials()
                        .AllowAnyHeader()
                        .AllowAnyMethod());
...