android - 使用 AngularJS 从服务器重定向时 Android 上的无限重定向循环

标签 android node.js angularjs

我正在为旧版 Android (2.3.x) 构建一个网络/phonegap 应用程序。在我尝试将任何服务器重定向添加到组合中之前,一切都很好。场景如下:

服务器 (node.js) 有一个监听在 '/' 的路由。命中此路由时,它会检查是否存在 session 。如果没有 session ,它将重定向到/login。很好,这部分工作(无论如何,服务器明智)。

当客户端获得重定向时,问题就出现了。因为 Android 2.3 不支持 history.pushState,所以它退回到 hashbangs。这意味着 AngularJS 将 url 重写为/#!/login,这会导致服务器请求 '/',这会导致服务器检查 session 并重定向到 '/login',这会导致 AngularJS 将 url 重写为/#!/登录..等等等等..无限期。

关于如何使用 AngularJS 从服务器重定向有什么想法吗?我不应该在我的 route 处理这个逻辑而是尝试在客户端上实现它吗?必须有一种方法来处理这个问题,我敢肯定,但我似乎无法弄清楚。

如有任何帮助,我们将不胜感激。谢谢!!

最佳答案

使用一个简单的对象来命令重定向:
如果用户没有登录,返回{action: "redirect"url:"/login"}

然后在客户端中,在得到响应后,检查 action == 'redirect'$location.path(url)

关于android - 使用 AngularJS 从服务器重定向时 Android 上的无限重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14752510/

相关文章:

javascript - 使用 findOne 更新 mongoDB 文档中的子字段并保存

angularjs - 递归菜单指令

javascript - 如何使用 Angularjs 和 Javascript 获取客户端 IP 地址以及语言和国家/地区

android - 使用自定义 broadcastreceiver 接收 Parse 通知

android - 无法获取未知属性 'localProperties'

javascript - 想要比较 Node js应用程序中 Handlebars View 中的两个字符串

javascript - 如何使用 angularjs 遍历 JSON 对象

java - org.gradle.api.tasks.TaskExecutionException : Execution failed for task ':app:checkDebugDuplicateClasses'

android - Firebase 实时数据库不工作,setValue

node.js - Firebase Auth : Invalid email address crashing node. js (Express) 应用