如何在 Ember 应用程序中处理来自服务器的 503 响应?

Posted

技术标签:

【中文标题】如何在 Ember 应用程序中处理来自服务器的 503 响应?【英文标题】:How to Handle 503 Response from Server in Ember Application? 【发布时间】:2019-08-14 08:02:51 【问题描述】:

如何在我的ember 应用程序中处理来自服务器的503 响应?作为 UI 开发人员如何调试? UI 开发人员如何处理这些类型的响应。

【问题讨论】:

如果您认为答案有用,请验证并投票。谢谢 【参考方案1】:

ember 提供默认的error handlers,当找到适当的错误子状态时会触发它。

例如:如果路由的model钩子返回error有效载荷(来自服务器的错误响应),则可以处理错误事件并用于显示错误消息、重定向到页面等。

import Route from '@ember/routing/route';

export default Route.extend(
  model(params) 
    return this.store.findAll('privileged-model');
  ,

  actions: 
    error(error, transition) 
      if (error.status === '403') 
        this.replaceWith('login');
       else 
        // Let the route above this handle the error.
        return true;
      
    
  
);

参考 - https://guides.emberjs.com/release/routing/loading-and-error-substates/

(或)

当promise被解析时,可以直接使用.then处理,

model(params) 
  return this.store.findAll('privileged-model').then((response) => 
    // handle success
  , (response) => 
    // handle error
    if (response.status === '403') 
      // handle 403 errors
    
  )
,

【讨论】:

【参考方案2】:

ember 提供其内部错误处理程序。因此,无论您的 api 向您发送什么错误,ember 总是会产生相同的错误消息。 “无效的适配器”。如果您想显示来自您的 api 响应的原始消息,您需要对您的响应进行字符串化。例如JSON.stringify(response.errors) .

【讨论】:

以上是关于如何在 Ember 应用程序中处理来自服务器的 503 响应?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ember.js 中处理表单提交?

如何在基于 ember 的应用程序中识别长按手势?

在ember中运行时创建模型属性

如何在 ASP.NET Core 5.0 中处理来自客户端的双重请求?

ember.js 和服务器

如何保护 Angular.js 或 Ember.js 的 Spring RESTful Web 服务