【发布时间】:2013-08-22 23:33:21
【问题描述】:
所以现在我已经配置了html5mode。
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
这就是我的 express 支持 html5mode 的中间件的结束
app.use(function (req, res) {
if (!req.path.match('/calendar|/user|/create|/profile')) {
return res.send(404);
}
res.render('home/index', {
currentUser: req.user
});
});
而且我所有的网址在 Chrome 和 Firefox 3.6(我用来测试 hashbang 回退)中都运行良好。
我唯一的问题是注销路线。我的注销是服务器交互。所以我就这么做了。
$rootScope.logout = function () {
window.location = '/logout';
};
然后对该功能进行了一次 ng-click 操作,该功能可用于在 Chrome 中注销。我将如何在 hashbang 后备模式下执行此操作?它不适用于 Firefox 3.6。谢谢!
【问题讨论】:
-
你可以试试
$location.url('/logout') -
这是我尝试的第一件事。在 html5mode 内外都不起作用
-
好吧,我想你可以检测一下浏览器看它是否支持pushState。如果没有,则手动添加
#!。 :) -
注销url是传统的url,需要打服务器。在这种情况下,这是行不通的。在 html5mode 和旧版浏览器中,所有客户端路由都正常工作。谢谢
-
您是否尝试过这样的链接:注销?
标签: javascript angularjs express