Не определено в угловом шаблоне из ответа сервера - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть система входа в систему для одного пользователя. Во всей организации и во всех приложениях учетные данные одинаковы. Когда я отправляю запрос на вход в систему от angular, получаю ответ ниже:

"Статус Код {\ "statusCode \": 200, \ "body \": \ "\", \ "headers \": {\ "date \": \ "Четверг, 13 Сентябрь 2018 16:04:46 GMT \ "\ "х-питание-на \": \ "сервлетов / 3.0 \", \ "Content-Length \": \ "0 \", \ "\ печенье установленный": [\" LtpaToken2 = UXVOlmR + вырезать / Ку / cxxxmWaEOEkCtxxxq22GgCI4Iz8nffc1n8O1l5AE0sUCPQfZ + nB9vXS / WMkzxanOexJHzJZb4IgqoxTc0UztF + 1amzVysdvdBSSIoblF8fFc9iRMkjYPbxZISg29sU1Q6Au0 + Dh50ARY1NhkRQ8iwVst1X6Pbc3Dn4YpLO08utqAi9 + 35Pun + IFJnbTF6BRvleLKXDifZzwmuZlRKs5gseb9GELQYjTLlXFykm8aq0Ulh0Z8VT / xi0uRFFiR0eUrEvo58sev / 3XPYv10 // ZTkWOqFnADdzhsBoW4wtWVjlFcvlB / 24TBaKtNWmYJd3 / tsnoRCWPn1yd4udC0YDFsr3h5SGAjgCRMg7gH8 + hvpnIiKzzfcxNmQTPlRjav + SUkBfIxAQ5gmGOmDXDcuzMSbx8zJk1RGNcM / Ksmrcv + SOoDMtmCDHWWqTVn9VLPAnF9bZE7Fkmis7QcNxK5UAoMTCCzgfwMEwHeWm4fY7DblWi8RM =; Путь = / \ "\" JSESSIONID = 0000LsRRstmAD-Y923str-8: -1; Path = / \ "], \" expires \ ": \" Четверг, 01 декабря 1994 г., 16:00:00 GMT \», \ "кэш-контроль \": \ "нет кэша = \\" Set-Cookie, Set-Cookie2 \\ "\", \ "Content-Language \": \ "EN-US \", \ "связь \": \ "закрыть \"}, \ "запрос \": {\ "URI \" : {\ "протокол \": \ "HTTP: \", \ "косая черта \": правда, \ "Auth \": нулевой, \ "хозяина \": \ "abcd.com \", \ "порт \" : 80, \ "имя хоста \": \ "abcd.com \", \ "хеш \": нулевой, \ "поиск \": нулевой, \ "запрос \": нулевой, \ "путь \": \ "/ привет / отдых / Логин \ "\ "путь \": \ "/ привет / отдых / Логин \", \ "HREF \": \" http://abcd.com\"},\"method\":\"GET\",\"headers\":{\"authorization\":\"Basic r8htMGw5adkhobSMzYXVn \ "}}}"

Я получаю неопределенное значение, когда пытаюсь получить доступ к коду статуса в моем компоненте входа в систему,

this.apiDataService.getLogin(user).subscribe((data: any) => {
      if (data.statusCode==200) {
        this.apiDataService.storeUserData(data.headers, data.authorization);
        this.router.navigateByUrl('/validate');
      } else {
        this.loginError = true;
        this.errMsg = 'Invalid username/password';
      }

подскажите, пожалуйста, как получить код состояния и что я должен использовать для управления сеансом, например, set-cookie, который я не могу использовать. });

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Попробуйте data.json () для анализа ответа как объекта JSON,

this.apiDataService.getLogin(user).subscribe((data: any) => {
  var response=data.json();
  if (response.statusCode==200) {
    this.apiDataService.storeUserData(response.headers, response.authorization);
    this.router.navigateByUrl('/validate');
  } else {
    this.loginError = true;
    this.errMsg = 'Invalid username/password';
  }
0 голосов
/ 14 сентября 2018

Попробуйте это:

this.apiDataService.getLogin(user).map((res: any) => res.json()).subscribe((data: any) => {
      if (data.statusCode==200) {
          this.apiDataService.storeUserData(data.headers, data.authorization);
          this.router.navigateByUrl('/validate');
      } else {
          this.loginError = true;
          this.errMsg = 'Invalid username/password';
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...