카테고리 없음

본문없이 문자열을 반환하는 각도 앱에서 Spring REST POST API를 호출하고 사용하는 방법은 무엇입니까?

기록만이살길 2021. 2. 20. 03:32
반응형

본문없이 문자열을 반환하는 각도 앱에서 Spring REST POST API를 호출하고 사용하는 방법은 무엇입니까?

1. 질문(문제점):

내 스프링 앱에서 각도로 POST API에 액세스하려고 시도하고 있지만 각도 앱에서 주어진 API를 사용하고 액세스하는 방법을 약간 혼란스럽게합니다.

스프링 REST API

@RequestMapping(value = "/getWelcomeMessage", method = RequestMethod.POST)
    public String getLoginWelcomeMessage() {
        return details.getLoginWelcomeMessage();
    }
    

주어진 API는 내 오라클 DB에서 환영 메시지 세부 정보를 가져오고 문자열 값을 반환합니다. 서비스를 통해 내 각도 코드에서 주어진 REST API에 액세스하려고합니다. 다음과 같이 포스트 서비스를 정의했습니다.

export class LoginService {

  constructor(private http : HttpClient) { }

  welcomeMessageService(){
    const headers = {'content-type':'application/text'}
    return this.http.put("http://localhost:8080/API/getWelcomeMessage",null,
    {'headers':headers});
  }

}

post 메소드에는 세 개의 인수 URL, Body 및 헤더가 필요합니다. 하지만 제 경우에는 스프링 REST API에 본문이없고 문자열을 반환합니다. 그래서 본문을 null로 정의하고 헤더 유형을 기본적으로 JASON으로 변경했습니다.

마지막으로 다음과 같이 내 구성 요소에 삽입하여 주어진 서비스 메서드에 액세스하려고합니다.

export class LoginComponent implements OnInit {

  message:string;

  constructor(private loginService : LoginService) { }

  ngOnInit(): void {
    this.loginService.welcomeMessageService().subscribe(
      response =>{
        console.log(response);
        this.message = response;
      }
    )
  }

}

그러나 문자열에 응답을 할당하려고 할 때 문자열을 객체에 할당 할 수 없다는 오류가 발생합니다. 내 서비스를 정의하는 동안 헤더 유형을 문자열로 변경했지만 여전히 오류가 발생했기 때문에이 오류가 발생하는 이유가 약간 혼란 스럽습니다.

앵귤러에 익숙하지 않고 앵귤러와 API의 통합 부분과 약간 혼란스러워서 누군가가 이것에 대해 나를 안내한다면 큰 도움이 될 수 있습니다.

2. 해결방안:

{ responseType: 'text' }null이 아닌 빈 본문을 사용 하고 보냅니다.

export class LoginService {

  constructor(private http : HttpClient) { }

  welcomeMessageService(){
    return this.http.put("http://localhost:8080/API/getWelcomeMessage",{},
    { responseType: 'text' });
  }

}

함수를 잘못 복사했을 수도 있지만 여기에서도 확인하십시오.

@RequestMapping(value = "/getWelcomeMessage", method = RequestMethod.POST)
    public String getLoginWelcomeMessage() {
        return details.getLoginWelcomeMessage();
    }
    

이것은 호출하려는 풋이 아닌 Post 메소드입니다.

고르 오류에 대해서는 바로 위의 백엔드에 다음을 추가 @Controller하거나 @RestControler당신은 무엇을 가지고

@CrossOrigin(value = {"http://localhost:4200"}, methods = {GET,POST,PUT,DELETE})
65955515
반응형