运行angularjs
应用程序时,可能会从服务器端撤消用户访问权限。在这种情况下,每个请求都会产生一个http 302重定向和一个登录html(无部分)页面。因为在确实仍然会给出访问权限的情况下,angular确实期望它所请求的任何内容,它会因为它可能期望json字符串而中断而获取html登录页面。
我能做些什么来捕捉这个事件(听重定向,弄清楚是否返回html等)并做一个" hard"刷新重定向网址?
答案 0 :(得分:1)
由于您无法干扰ajax 302响应并重定向到错误页面,因此您需要有点创意。
您可以在相关回复中添加标题或不同的响应代码,并在客户端添加拦截器
拦截器是每个ajax请求\响应的模块。
您可以添加将查找该标头的代码,并在登录页面上执行$window.location.href
。
答案 1 :(得分:0)
如果我说得对,你说的是来自AngularJS的$http
服务。
如果这就是重点,你可以自己转换响应并检查它的valide JSON是否像这样:
$http({
url: '...',
method: 'GET',
transformResponse: function (reponse) {
var ret = [];//if the return stays empty, the repsonse may be HTML
try {
ret = JSON.parse(reponse);
} catch (error) {
//here you could check for the error
}
return ret;
}
}).success(function(answer){
if(answer.length === 0){//its empty, so its probably HTML
$window.location.reload();//refresh page here
return;
}
//its JSON with content!
});