Angular - 如何将自定义错误消息从 restful api 传递到 Angular 前端

用户11352561

在我的 Angular-11 应用程序中,我有以下代码:

登录.ts:

  onSubmit(){
    this.isSubmitted = true;

    // stop here if form is invalid
    if (this.loginForm.invalid) {
          return;
      }

    const formData = this.loginForm.getRawValue();

    const data = {
      email: formData.email,
      password: formData.password
    };
    const headers = {
      'Content-Type' : 'application/json'
    };

    this.isLoading = true;
    return this.api.post('login', data, headers)
      .pipe(first())
      .subscribe(
        data => {
          this.tokenHandler(data);
        },
        error => {
          this.toastr.error(error.message);
          this.isLoading = false;
        });
  }

令牌处理函数:

  tokenHandler(data: any){
    this.token.setRoles(data.results.user.roles);
    this.token.set(data.results.token_type + ' ' + data.results.access_token, data);
    this.auth.changeAuthStatus(true);
      this.router.navigateByUrl('/dashboard');
  Swal.fire({
    position: 'center',
    icon: 'success',
    title: data.message,
    showConfirmButton: false,
    timer: 3000
  });

  }

这些是我来自后端的登录成功和失败的 json api 响应:

登录成功:

{
  "message": "You have successfully Logged In.",
  "error": false,
  "code": 200,
  "results": {
    "user": {
        "id": 2,
        "name": null,
        "email": "[email protected]",
    }
  }
}

登录失败:

{
  "success": false,
  "message": "Email is Required!",
  "data": []
}

登录成功后即可正常使用。它按照此处的说明显示来自后端 api JSON 响应的消息:

title: data.message,

但是对于失败或错误,它不断带来相同的消息“内部服务器错误”。但是来自后端 api JSON 响应的自定义消息,例如:端点中的“需要电子邮件”

"message": "Email is Required!",

当我从 Angular 执行此操作时:

this.toastr.error(error.message);

我如何获得这个要求并从 api 响应中获取自定义消息而不是

“内部服务器错误”消息

谢谢

高的

检查文档,https://angular.io/api/common/http/HttpErrorResponse

error.message 是服务器错误。尝试console.log(error)查看整个回报,或使用debugger;太多。但是,error.error在您的情况下,来自服务器的响应是

提示:您可以使用拦截器来捕获错误。
https://www.tektutorialshub.com/angular/angular-http-error-handling/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何捆绑.NetCore API + Angular前端

如何将数据从 Angular 前端传递到 Spring Boot 后端?

如何将对象数组从Angular前端传递到C#后端

如何将从angular接收到的数据传递到html前端?

如何将自定义错误绑定到angular5中的模板驱动表单输入字段

如何将自定义指令属性传递给Angular 1.5中的自定义指令子元素?

如何正确地将自定义错误从后端(Express)传递到前端(Vue)

如何使用 fetch() 通过 Rails 后端将自定义错误传递到 JavaScript 前端

如何将Angular 4+(前端)部署到CDN?

如何将 qrcode 从 .netcore api 传递到 angular

如何将凭证从 Angular2 前端传递到 Spring 后端(Spring Security 的基本身份验证)

Angular 前端语法错误

Angular - 如何处理后端到前端的命名约定?

TomEE / Angular - 如何将未知路径从 TomEE 重定向到 Angular 前端?

Angular2 / 4/6将自定义管道过滤列表从HTML传递到组件

从 Angular 前端发布到 Apache Kafka 主题

是否可以使用自定义 UI 和前端框架(如 Angular/React)单独使用 ActiveAdmin API 端点?

使用 HTTP Post(RESTful API)将请求从 React.JS 前端传递到 C# 后端(ASP.NET)

从 Angular 2 前端到 Asp.Net Core web api 的 JSON 数据发布 - 丢失值

如何在我的Restful API中使用Angular JS

自定义来自Angular 4前端服务器的错误?

Angular2如何将参数传递到自定义表单控件验证器中?

定义自定义错误消息Flask Restful API

如何将多个参数从 angular 8 传递到 .NET Core API

如何将数据从 HTTP GET API 传递到 angular 中的 mat 对话框组件

如何将数组从Angular 6传递到ASP.NET Core API的GET方法?

如何将带有angular 2前端(angular-cli构建)的spring-boot webapp部署到Tomcat?

使用angular4将自定义模型传递到Firestore时出错,需要对象

MEAN-stack 应用程序:从 angular2 前端到表达后端的 REST API 调用不起作用。错误:ERR_CONNECTION_REFUSED