Angular에서 상태 코드를 검색하려면 어떻게해야합니까?

크루 토이

저는 Angular를 처음 사용하고 연습을 위해 사용자가 처음에는 사용자 이름으로 만 로그인 할 수있는 작은 응용 프로그램을 만들고 싶습니다. 그렇게하기 위해 백엔드가 http 상태 200을 반환하는 경우 로그인 한 사용자를 저장하고 싶습니다. 그러나 요청의 http 상태를 가져올 수 없습니다. 나는 이미 여기와 다른 사이트에서 여러 게시물을 찾았지만 이러한 모든 솔루션이 나를 위해 작동하지 않는 것 같습니다.

내 Angular 버전 : 8.2.14

내 로그인 서비스는 다음과 같습니다.

import { Injectable } from '@angular/core';
import {
  HttpClient,
  HttpHeaders,
  HttpErrorResponse,
} from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError, retry } from 'rxjs/operators';
import { User } from '../model/User';

@Injectable({
  providedIn: 'root',
})
export class LoginService {
  constructor(private http: HttpClient) {}

  loginUrl = 'login';
  httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/json',
    }),
  };

  login(user: User) {
    const request = this.http
      .post(this.loginUrl, user, this.httpOptions)
      .pipe(catchError(this.handleError));
    return request;
  }

  private handleError(error: HttpErrorResponse) {
    console.log('handleError Method');
    console.log('Errorcode', error.status);
    if (error.error instanceof ErrorEvent) {
      // A client-side or network error occurred. Handle it accordingly.
      console.error('An error occurred:', error.error.message);
    } else {
      // The backend returned an unsuccessful response code.
      // The response body may contain clues as to what went wrong,
      console.error(
        `Backend returned code ${error.status}, ` + `body was: ${error.error}`
      );
    }
    // return an observable with a user-facing error message
    return throwError('Something bad happened; please try again later.');
  }
}

그리고 이것은 서비스를 호출하는 로그인 구성 요소입니다.

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { first } from 'rxjs/operators';
import { LoginService } from 'src/app/services/login.service';
import { User } from '../../../model/User';

@Component({
  selector: 'app-login-component',
  templateUrl: './login-component.component.html',
  styleUrls: ['./login-component.component.css'],
})
export class LoginComponent implements OnInit {
  loginForm: FormGroup;
  loading = false;
  submitted = false;
  returnUrl: string;
  user: User;
  // loginService: LoginService;

  constructor(private loginService: LoginService) {}

  ngOnInit() {}

  login(username: string, password: string) {
    const dummyUser = { username, password };
    this.loginService.login(dummyUser).subscribe((data) => {
      console.log('data', data);
      this.user = data;
      console.log('user', this.user);
    });
  }
}

편집 :

Mari Mbiru의 답변과이 게시물 https://stackoverflow.com/a/47761516/12360845 로이 질문을 해결할 수있었습니다. 실제로 세트에 시도 observe:'response'하기 전에하지만 난에 넣어하지 않았다 httpOptions있지만에서 HttpHeaders작동하지 않았다. 내 작업 게시물 요청은 이제 다음과 같습니다.

login(user: User) {
    const request = this.http
      .post<User>(
        `${this.loginUrl}`,
        { username: user.username, password: user.password },
        {
          headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
          observe: 'response',
        }
      )
      .pipe(catchError(this.handleError));
    return request;
  }
마리 음 비루

HttpClient를 사용하면 {observe: 'response'}요청 옵션 에 추가하여 본문 대신 전체 응답을 볼 수 있습니다. 그러면 본문, 헤더, 상태, URL 등이있는 HttpResponse 개체가 반환됩니다.

따라서 httpOptions는 다음과 같아야합니다.

 httpOptions = {
 observe:'response'
 headers: new HttpHeaders({
  'Content-Type': 'application/json',
 }),
};

그리고 구독 :

this.loginService.login(dummyUser).subscribe((res) => {
       console.log('response', res);
       this.user = res.body;
       console.log('user', this.user);
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Aptana에서 PHP 코드를 검색하려면 어떻게해야합니까?

분류에서Dev

curl에서 상태 코드 숫자를 추출하려면 어떻게해야합니까?

분류에서Dev

추상 클래스 목록에서 파생 클래스를 검색하려면 어떻게해야합니까?

분류에서Dev

TTransport 예외에서 HTTP 상태 코드를 얻으려면 어떻게해야합니까?

분류에서Dev

Winform에서 변경 사항을 실행 취소하고 이전 양식 상태를 검색하려면 어떻게해야합니까?

분류에서Dev

이 코드에서 내 상태 변수에 액세스하려면 어떻게해야합니까?

분류에서Dev

상태 객체간에 상태를 안전하게 변경하려면 어떻게해야합니까?

분류에서Dev

C ++ 코드에서 QML의 TextField에서 텍스트를 검색하려면 어떻게해야합니까?

분류에서Dev

PPRevealSideViewController에서 검은 색 상태 표시 줄을 제거하려면 어떻게해야합니까?

분류에서Dev

Microsoft Visual Studio에서 태양 광 색상 테마를 얻으려면 어떻게해야합니까?

분류에서Dev

Microsoft Visual Studio에서 태양 광 색상 테마를 얻으려면 어떻게해야합니까?

분류에서Dev

이 코드를 사용하여 div를 화면 상단에 고정하려면 어떻게해야합니까?

분류에서Dev

PHP DOMElement에서 정보를 검색하려면 어떻게해야합니까?

분류에서Dev

Google Contacts API에서 ID를 검색하려면 어떻게해야합니까?

분류에서Dev

Redux 앱에서 상태를 올바르게 반환하려면 어떻게해야합니까?

분류에서Dev

React에서 2 개의 상태를 올바르게 변경하려면 어떻게해야합니까?

분류에서Dev

Payum 결제에서 "보류 중"상태를 "올바르게"확인하려면 어떻게해야합니까?

분류에서Dev

AWS Gateway를 사용하여 Lambda를 가져와 C #에서 HTTP 오류 상태 코드를 반환하려면 어떻게해야합니까?

분류에서Dev

Microsoft Edge에서 검색 입력을 지우려면 항상 'x'를 표시하려면 어떻게해야합니까?

분류에서Dev

웹 API의 메서드에서 main으로 HTTP 상태 코드를 반환하려면 어떻게해야합니까?

분류에서Dev

반응 후크에서 검색 상자를 만들려면 어떻게해야합니까?

분류에서Dev

각 tableView 행에 대해 UIButton 상태를 다르게하려면 어떻게해야합니까?

분류에서Dev

ubuntu / centOS에서 항상 실행되는 Java의 코드를 유지하려면 어떻게해야합니까?

분류에서Dev

Regex를 사용하여 Python에서 16 진수 색상 코드를 올바르게 구문 분석하려면 어떻게해야합니까?

분류에서Dev

모든 모델 클래스에 공통 검색 코드를 사용하려면 어떻게해야합니까?

분류에서Dev

React Native에서 상태 중 하나를 조건부로 계산하려면 어떻게해야합니까?

분류에서Dev

Python의 FastAPI 자동 생성 OpenAPI / Swagger 문서 페이지에서 오류 http 상태 코드를 추가하려면 어떻게해야합니까?

분류에서Dev

게시물과 관련된 태그를 데이터베이스에서 검색하려면 어떻게해야합니까?

분류에서Dev

node / adonis에서 특정 상태 + 메시지를 반환하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Aptana에서 PHP 코드를 검색하려면 어떻게해야합니까?

  2. 2

    curl에서 상태 코드 숫자를 추출하려면 어떻게해야합니까?

  3. 3

    추상 클래스 목록에서 파생 클래스를 검색하려면 어떻게해야합니까?

  4. 4

    TTransport 예외에서 HTTP 상태 코드를 얻으려면 어떻게해야합니까?

  5. 5

    Winform에서 변경 사항을 실행 취소하고 이전 양식 상태를 검색하려면 어떻게해야합니까?

  6. 6

    이 코드에서 내 상태 변수에 액세스하려면 어떻게해야합니까?

  7. 7

    상태 객체간에 상태를 안전하게 변경하려면 어떻게해야합니까?

  8. 8

    C ++ 코드에서 QML의 TextField에서 텍스트를 검색하려면 어떻게해야합니까?

  9. 9

    PPRevealSideViewController에서 검은 색 상태 표시 줄을 제거하려면 어떻게해야합니까?

  10. 10

    Microsoft Visual Studio에서 태양 광 색상 테마를 얻으려면 어떻게해야합니까?

  11. 11

    Microsoft Visual Studio에서 태양 광 색상 테마를 얻으려면 어떻게해야합니까?

  12. 12

    이 코드를 사용하여 div를 화면 상단에 고정하려면 어떻게해야합니까?

  13. 13

    PHP DOMElement에서 정보를 검색하려면 어떻게해야합니까?

  14. 14

    Google Contacts API에서 ID를 검색하려면 어떻게해야합니까?

  15. 15

    Redux 앱에서 상태를 올바르게 반환하려면 어떻게해야합니까?

  16. 16

    React에서 2 개의 상태를 올바르게 변경하려면 어떻게해야합니까?

  17. 17

    Payum 결제에서 "보류 중"상태를 "올바르게"확인하려면 어떻게해야합니까?

  18. 18

    AWS Gateway를 사용하여 Lambda를 가져와 C #에서 HTTP 오류 상태 코드를 반환하려면 어떻게해야합니까?

  19. 19

    Microsoft Edge에서 검색 입력을 지우려면 항상 'x'를 표시하려면 어떻게해야합니까?

  20. 20

    웹 API의 메서드에서 main으로 HTTP 상태 코드를 반환하려면 어떻게해야합니까?

  21. 21

    반응 후크에서 검색 상자를 만들려면 어떻게해야합니까?

  22. 22

    각 tableView 행에 대해 UIButton 상태를 다르게하려면 어떻게해야합니까?

  23. 23

    ubuntu / centOS에서 항상 실행되는 Java의 코드를 유지하려면 어떻게해야합니까?

  24. 24

    Regex를 사용하여 Python에서 16 진수 색상 코드를 올바르게 구문 분석하려면 어떻게해야합니까?

  25. 25

    모든 모델 클래스에 공통 검색 코드를 사용하려면 어떻게해야합니까?

  26. 26

    React Native에서 상태 중 하나를 조건부로 계산하려면 어떻게해야합니까?

  27. 27

    Python의 FastAPI 자동 생성 OpenAPI / Swagger 문서 페이지에서 오류 http 상태 코드를 추가하려면 어떻게해야합니까?

  28. 28

    게시물과 관련된 태그를 데이터베이스에서 검색하려면 어떻게해야합니까?

  29. 29

    node / adonis에서 특정 상태 + 메시지를 반환하려면 어떻게해야합니까?

뜨겁다태그

보관