【问题标题】:Logout url in html5mode angularjs?html5mode angularjs中的注销网址?
【发布时间】: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


【解决方案1】:

将 target="_self" 添加到链接中,如下所示:

<a href="/logout" target="_self">Logout</a>

AngularJS 忽略带有目标属性的链接。这在此处记录:HTML link rewriting(搜索 _self)。

【讨论】:

    猜你喜欢
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2020-09-24
    • 2016-06-26
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多