【问题标题】:Facebook omniauth callback and #_Facebook omniauth 回调和#_
【发布时间】:2011-08-24 10:44:07
【问题描述】:

我使用 Rails 3.1、Devise 和 Omniauth。

问题是当 facebook 回调我的应用程序时 网址以#_ 结尾。然后在回调动作的时候 我重定向到某些东西 - 例如/after_signin 重定向结果为/after_signin#_

知道如何从 URL 中删除此锚点吗?

编辑: 我在回调函数中放了什么并不重要。 甚至是简单的重定向:

class Users::OmniauthCallbacksController < ApplicationController
  def facebook
    redirect_to "/after_callback"
  end
end

这将导致转到/after_callback#_

即使在普通控制器中,如果您转到 /#_ 并且您有一些重定向 它将被重定向到指定的路径,并在末尾附加#_

编辑2: 我刚刚发现保留锚点是浏览器的错误。所以它必须是 在前端处理。

【问题讨论】:

  • 请出示您的回调函数代码。
  • 这很奇怪。为什么哈希值会通过?也许试试redirect_to "/after_callback", :anchor =&gt; ''
  • @ben 刚刚发现保留锚点实际上是浏览器故障(Chrome 和 Firefox 会这样做,Safari 不会)。这对我来说也很奇怪。
  • 这已经在上一个问题中讨论过:facebook.stackoverflow.com/questions/7131909/…

标签: ruby-on-rails facebook devise omniauth


【解决方案1】:

如果您确定这是浏览器问题,您可以使用 JavaScript 更新 windowlocation 对象的 hash 部分。也许是这样的:

if (window.location.hash.search('#_') >= 0) {
    window.location.hash = '';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多