Функция .Subscribe () получает значение, но не может войти в функциональный блок - PullRequest
0 голосов
/ 26 марта 2019

Вызовите сервис из внешнего интерфейса Springboot с помощью наблюдаемого rxjs.Даже подумав об использовании функции .subscribe для вызова этой службы, которая успешно возвращает значение, я не могу войти в блок подписки, он напрямую достигает конца блока.

login.component.ts

validate() {
    console.log('need to validate');
    this.loginService.checkLogin(this.userName, this.pwd).subscribe(resp => {
      console.log(resp);
      if (resp === 'success') {
        this.router.navigateByUrl('/home');
      }
    }, error => {
      this.toastr.error(error.error.message);
    });
  }

login.service.ts

export class LoginServiceService {

  url = 'http://localhost:8089/login/check';
  constructor( private http: HttpClient) { }

   public checkLogin(userName, password): Observable <any> {
    let headersValue = new HttpHeaders();
    headersValue = headersValue.set('Access-Control-Allow-Origin', '*');
    headersValue = headersValue.set('Content-Type', 'application/json');
    headersValue = headersValue.set('userName', userName);
    headersValue = headersValue.set('password', password);
    return this.http.get<any[]>(this.url, { headers: headersValue });
}
}

ожидаемый результат: он должен войти в блок подписки и отобразить соответственно в консоли, а также ввести блок if.

фактический результат: только«Требуется проверка отображается».

и непосредственно достигает конца блока после проверки ошибок.

1 Ответ

0 голосов
/ 26 марта 2019

Я думаю, что ваша проблема может быть связана с заголовками. Я не уверен, нужен ли вам какой-либо из них, но, более конкретно, я не думаю, что имя пользователя и пароль принадлежат вообще. Вероятно, они должны быть params. Я думаю, что вам может помочь следующее:

public checkLogin(userName, password): Observable <any> {
    let headersValue = new HttpHeaders();
    headersValue = headersValue.set('Access-Control-Allow-Origin', '*');
    headersValue = headersValue.set('Content-Type', 'application/json');
    const params = { userName, password };
    return this.http.get<any[]>(this.url, { headers: headersValue, params });
}
...