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

时间:2019-03-23 14:33:46

标签: javascript ember.js ember-data ember-cli http-status-code-503

如何在我的503应用程序中处理来自服务器的ember响应?如何以UI开发人员身份进行调试? UI Developer如何处理此类响应。

2 个答案:

答案 0 :(得分:0)

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/

(OR)

使用.then解决承诺后,您可以直接处理

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

答案 1 :(得分:0)

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