我希望我的 Emberjs 应用程序处理未经授权的 HTTP 状态 (401)。
该应用程序使用 ember-data 来集成一个 JSON API (Rails)。
当收到 HTTP 状态未授权 (401) 时,客户端层 (Emberjs) 应重定向到提示登录的 Emberjs View /模板。
如何为整个应用程序执行此操作?
最佳答案
我正在研究同一主题,看起来这里的信息有点过时了。使用 Ember 1.7.0,您应该处理路由中的错误。如果您想将此应用到整个应用程序,您应该将其添加到您的 ApplicationRoute
类,像这样
// app/routes/application.js
import Ember from 'ember';
var ApplicationRoute = Ember.Route.extend({
actions: {
error: function (error, transition) {
// Handle the error here
if (error && error.status === 401) {
return this.transitionTo('login');
}
}
}
});
export default ApplicationRoute;
这与文档描述的方式相同:read here
更新:在较新版本的 Ember 和 Ember Data 中,错误对象结构会有所不同。状态将是一个字符串,包含在一个错误对象中,在一个错误数组中:
actions: {
error: function(error, transition) {
if (error.errors[0].status === '401') {
this.transitionTo('sign-in');
}
}
}
关于login - 当 ember-data 收到 http 状态 401 时,Ember.js 应用程序应该重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078374/