0

我目前正在我的应用程序中实现一个 facebook 登录,在用户成功授权他或她的帐户后,它将返回到我的 Web 服务器中的一个操作类,然后就可以了。

这是一个例子

1)用户点击登录 facebook 2)他或她将被重定向到这个 facebook 授权页面 2)一旦他或她被授权。页面将被重定向到 struts2 动作类。所以网址看起来像这样

http://127.0.0.1:8080/MyApp-Facebook/oAuthExchange?code=SomeLongFacebookCodHere#_=_

如果您会看到 oAuthExchange 的结束 url 有一个#_=_. 然后它将被重定向到我的应用程序的仪表板页面,页面网址将如下所示

http://127.0.0.1:8080/Struts2-Facebook/dashboard#_=_

如果您注意到"#_=_"我的网址中有一个。无论如何我可以"#_=_"在我进行重定向时删除?

我也将Facebook4j用于 facebook 图形 API

4

1 回答 1

2

您可以直接从 HTML5 兼容浏览器的结果页面中删除它history.pushState()

假设#_=_是固定的(否则你需要执行一个动态substringindexOf寻找#),把它放在你的页面中:

<script>
    //4 is the lenght of #_=_
    var cleanLocation = location.href.substring(0, location.href - 4); 
    history.pushState("","", cleanLocation);
</script>
于 2013-04-12T12:52:08.947 回答