Javascript Wierd text:“#_=_&引用;使用spring social成功登录Facebook后在URL上显示

Javascript Wierd text:“#_=_&引用;使用spring social成功登录Facebook后在URL上显示,javascript,spring-mvc,backbone.js,spring-social,Javascript,Spring Mvc,Backbone.js,Spring Social,这是我成功登录后获得的URL 我似乎也不能用backbone.js捕捉这些角色,所以我真的不知道如何克服这个问题 有人知道为什么会这样吗 1.1.0.M1 1.1.0.M1 以及对服务器的调用(使用手柄,您可以想象提供者说了什么): 就这样。我被重定向到facebook,登录,然后返回到/#u=. 谢谢。试着从spring social了解ConnectController类 您可以使用覆盖connectionStatusRedirect方法重定向到另一个URL 前 一种非常黑客的方法是只

这是我成功登录后获得的URL

我似乎也不能用backbone.js捕捉这些角色,所以我真的不知道如何克服这个问题

有人知道为什么会这样吗

1.1.0.M1
1.1.0.M1
以及对服务器的调用(使用手柄,您可以想象提供者说了什么):


就这样。我被重定向到facebook,登录,然后返回到
/#u=.


谢谢。

试着从spring social了解ConnectController类

您可以使用覆盖connectionStatusRedirect方法重定向到另一个URL


一种非常黑客的方法是只接受Facebook附加到重定向uri的垃圾,并将其别名为主干路由器中的垃圾。例如,在我的应用程序中,成功的身份验证会将用户重定向到,这将与我建立的主干路由相匹配:

@Override
protected RedirectView connectionStatusRedirect(String providerId, NativeWebRequest request) {
    String path = "http://X.com:8080/X/facebookRedirect";

    return new RedirectView(path, true);
}
Facebook所做的事情的问题是window.href末尾的“=u”中断了主干路由器。因此,我处理这件事的方法就是简单地停止战斗,并将垃圾别名为匹配索引方法,如下所示:

ExampleApp.Routers.Router = Backbone.Router.extend({
  ...
  routes: {
    "": "index",
  },
  ...
});
然后,在“index”方法(或您所称的任何方法)中,添加如下内容以使url更漂亮:

ExampleApp.Routers.Router = Backbone.Router.extend({
  ...
  routes: {
    "": "index",
    "_=_": "index"
  },
  ...
});
现在,显然会有更复杂的情况下,这将不起作用,所以我写这个答案没有保证

可能重复的
@Override
protected RedirectView connectionStatusRedirect(String providerId, NativeWebRequest request) {
    String path = "http://X.com:8080/X/facebookRedirect";

    return new RedirectView(path, true);
}
ExampleApp.Routers.Router = Backbone.Router.extend({
  ...
  routes: {
    "": "index",
  },
  ...
});
ExampleApp.Routers.Router = Backbone.Router.extend({
  ...
  routes: {
    "": "index",
    "_=_": "index"
  },
  ...
});
if (window.location.hash === "#_=_") {
    window.location.hash = "#";
}