处理Http Post响应。

时间:2018-12-17 23:13:31

标签: angular

我在组件中提供服务。我的服务将Http Post方法发送到服务器。问题是,Http客户端将不同于20x的状态代码识别为错误,并且我正在输入catchError()方法。我想让我的组件(以及最终用户)知道请求的结果。我试图在Service中创建全局变量,并在catchError()中进行更改,但它没有用。问题仅在请求时出现。如果这两个方法都包含在组件中,那么我只需要在“用户已创建”方法的开始处修改字段,如果我进入errorHandle()方法,我会将其更改为“用户尚未创建” +原因。

组件中有方法:

  sendRequest() {
    const registrationForm = new RegistrationForm(this.login, this.email, this.password, this.repeatedPassword);
    const response = this.registrationService.registerUser(registrationForm);
    console.log(registrationForm);
    response.subscribe();
  }

服务中有方法:

  registerUser(registrationForm: RegistrationForm): Observable<any> {
    return this.http.post<String>(this.registrationUrl, registrationForm, this.httpOptions).pipe(catchError(this.handleError));
  }

  handleError(error: HttpErrorResponse) {
    if (error.error instanceof ErrorEvent) {
      console.error('An error occurred:', error.error.message);
    } else {
      console.error(`Backend returned code ${error.status}, ` +
        `body was: ${error.error}`);
    }
    return throwError(
      'Something bad happened; please try again later.');
  }

我还有一个问题。如何使用Http Post处理纯文本请求返回?我的意思是,如果服务器成功时返回Json对象,或者错误时返回文本怎么办?

0 个答案:

没有答案