首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Express和ngRouter,前端代答呼叫而不是后端代答

Express和ngRouter,前端代答呼叫而不是后端代答
EN

Stack Overflow用户
提问于 2015-09-10 19:15:18
回答 1查看 14关注 0票数 0

似乎其他人也有类似的问题,但方向正好相反...因此,尝试设置google身份验证,并在"/auth/google“上设置对passport的调用

代码语言:javascript
复制
   app.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email'] }));

    // the callback after google has authenticated the user
    app.get('/auth/google/callback',
        passport.authenticate('google', {
            successRedirect : '/internal',
            failureRedirect : '/login',
            failureFlash : true
        }));

这是有效的,如果我去127.0.0.1/auth/google,我会得到google login。

然后,我创建了一个请求登录的按钮

代码语言:javascript
复制
<a href="/auth/google"><button type="button" class="btn btn-default btn-lg">
    <span class="glyphicon glyphicon-star" aria-hidden="true"></span> Login (Admin)
</button></a>

该按钮会将您转到127.0.0.1/auth/google,ngrouter会将其视为另一种情况(.otherwise({ redirectTo: "/" });)

这就是我的问题所在。直接调用服务器,它可以工作,但是,如果我通过angular调用它,路由器就会接收它。那么我如何强制"angular“向服务器请求页面呢?

auth set all被定义为app.get (根据上面的示例)。我不知道这是否因为我不是将这些定义为特快路线,而是将它们定义为module.export。在这种情况下,有没有一种方法可以直接告诉express拿起这些并在内部或类似的地方转发它们。

EN

回答 1

Stack Overflow用户

发布于 2015-09-10 22:23:47

其他人已经知道了。

AngularJS HTML5 Routing Enabled : Passing URL Back to server?

我想出来了!:)解决方案是将target='_self‘添加到您的锚标签中。任何其他目标值也可以;"_blank“、"_top”等等。我在IE9、10、Chrome40-43、Opera25-29和Safari5.1中进行了测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32500393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档