【问题标题】:Redirect to external URL from express.js does not work从 express.js 重定向到外部 URL 不起作用
【发布时间】:2012-09-03 20:47:35
【问题描述】:

我正在努力让 Facebook“在画布页面内进行身份验证”工作,as described here for PHP。我终于得到了 base64_decode 的东西,但我在将用户重定向到第 2a 节中描述的 URL 时确实失败了。我尝试了 response.redirect(url) 以及 response.setHeader('Location', url) 和我在 SO 上找到的其他选项,但这些都不起作用:/

如果我直接通过浏览器访问 URL,一切似乎都按预期工作。如果我重定向到同一域上的 URL,它也可以。也许我错过了一些基本的东西?是否可以重定向到外部域?完成这项工作的正确方法是什么?

提前谢谢你!

更新:我刚刚发现重定向到 http://heise.dehttp://orf.at 这样的页面有效,但不适用于 http://www.google.comhttp://www.facebook.com。我不知道这里发生了什么:/

【问题讨论】:

    标签: facebook redirect express


    【解决方案1】:

    我刚刚发现重定向到http://heise.dehttp://orf.at 之类的页面有效,但不适用于http://www.google.comhttp://www.facebook.com。我不知道这里发生了什么:/

    后者发送一个X-Frame-Options HTTP响应头,告诉客户端页面是否要显示在(i)帧中。

    Google 发送值SAMEORIGIN,这意味着只允许来自域 google.com 的页面在 (i) 框架中显示来自 google.com 的其他页面,而 Facebook 发送 DENY,意味着永远不允许该页面无论在哪里,都可以显示在任何类型的框架中。

    【讨论】:

      【解决方案2】:

      由于我无法解决问题,我想与您分享我使用的解决方法。 问题似乎是,Facebook 将页面包含在 iframe 中,因此只允许使用 window.top.location 进行重定向,这显然不能从服务器端完成。我现在使用了一种解决方法并渲染了一个除了 window.top.location = url 什么都不做的翡翠视图。不是很漂亮,但它有效。为什么有些页面有效而其他页面无效,这对我来说仍然是一个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-05
        • 2016-05-05
        • 2019-10-23
        • 1970-01-01
        • 2012-10-01
        • 2016-05-24
        • 2017-12-11
        • 2012-01-10
        相关资源
        最近更新 更多