重定向时角度刷新浏览器
Angular refresh browser on redirect
运行angularjs
应用程序时,可能会从服务器端撤回用户访问权限。在这种情况下,每个请求都会导致http 302重定向和登录html(无部分)页面。由于angular确实期望它所请求的任何内容,以防仍然提供访问权限,因此它会中断,因为它可能期望一个json字符串,但会获得html登录页。
我能做些什么吗?捕捉这个事件(听重定向,弄清楚html是否返回,等等)并对重定向url进行"硬"刷新?
由于您不能干扰ajax 302响应并重定向到错误页面,因此您需要有点创造性。
您可以向相关响应添加一个标头或不同的响应代码,并在客户端添加一个拦截器
拦截器是每个ajax请求/响应都要经过的模块
您可以添加将查找该标头的代码,并简单地对登录页面执行$window.location.href
。
阅读此处有关拦截器的信息
看看这个例子-它处理401个响应。
如果我说得对,你说的是AngularJS的$http
服务。
如果是这样的话,你可以自己转换响应,并检查它是否有效的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!
});
相关文章:
- 重定向时角度刷新浏览器
- 使用replaceWith同时单击按钮,而不刷新浏览器
- 浏览器同步在使用 Python Flask 时不会刷新浏览器
- 在调整窗口大小时刷新浏览器(仅在展开或放大时)
- 将数据传递到视图而不刷新浏览器
- AngularJS |刷新浏览器时,AngularJS模板会在安全上下文之前加载.如何阻止它
- 如何在刷新浏览器地址栏时重置css(a:visited{color:green})
- 如何使用按钮刷新浏览器页面
- 刷新浏览器后,Ajax的Listview调用未更新
- 余烬需要刷新浏览器才能获取模型数据
- 当我更改 src 时没有刷新浏览器的 iframe
- 使用 JS 刷新浏览器窗口
- 如何在不刷新浏览器的情况下更新倒计时达到 0 时的日期
- 如何在用户尝试刷新浏览器时获取“确认表单重新提交”
- 浏览器同步(在 gulp 下)不会刷新浏览器
- 刷新浏览器客户端而不访问服务器
- 为对事件更新文件的相同调用刷新浏览器缓存
- 谷歌图表在我刷新浏览器后显示数据
- 使用OnBeforeUnload事件刷新浏览器
- 页面总是刷新(浏览器中的标签总是显示活动圆圈),这是因为我使用iframe