Restangular:addResponseInterceptor 不工作
Restangular : addResponseInterceptor not working
我正在从事 angularjs 项目。
在app.js中我使用addResponseInterceptor来拦截对服务器的每个请求。如果没有错误 (response.status == 200 OK) 响应那么它就完美了。但我想特别拦截 (response.status == 401)。在这种情况下,我想将用户重定向到登录页面。但它不起作用。
这是我的 app.js addResponseInterceptor 代码:
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
if (response.status === 401)
{
window.location = 'To the login page';
} else
{
var extractedData;
extractedData = data;
return extractedData;
}
});
请求拒绝获取数据时出现这些错误
我试图通过“console.log(response)”来调试响应,但它没有显示任何内容。似乎如果响应有错误,那么它就不会进入 thr 拦截器块。
你需要的是error-intecetpr。下面的例子
Restangular.setErrorInterceptor(function(response, deferred, responseHandler) {
if(response.status === 403) {
refreshAccesstoken().then(function() {
// Repeat the request and then call the handlers the usual way.
$http(response.config).then(responseHandler, deferred.reject);
// Be aware that no request interceptors are called this way.
});
return false; // error handled
}
return true; // error not handled
});
我正在从事 angularjs 项目。
在app.js中我使用addResponseInterceptor来拦截对服务器的每个请求。如果没有错误 (response.status == 200 OK) 响应那么它就完美了。但我想特别拦截 (response.status == 401)。在这种情况下,我想将用户重定向到登录页面。但它不起作用。
这是我的 app.js addResponseInterceptor 代码:
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
if (response.status === 401)
{
window.location = 'To the login page';
} else
{
var extractedData;
extractedData = data;
return extractedData;
}
});
请求拒绝获取数据时出现这些错误
我试图通过“console.log(response)”来调试响应,但它没有显示任何内容。似乎如果响应有错误,那么它就不会进入 thr 拦截器块。
你需要的是error-intecetpr。下面的例子
Restangular.setErrorInterceptor(function(response, deferred, responseHandler) {
if(response.status === 403) {
refreshAccesstoken().then(function() {
// Repeat the request and then call the handlers the usual way.
$http(response.config).then(responseHandler, deferred.reject);
// Be aware that no request interceptors are called this way.
});
return false; // error handled
}
return true; // error not handled
});