php - 从重定向 JavaScript 的 URL 中删除#

标签 php javascript facebook url redirect

我目前遇到一个有趣的问题。我使用 Facebook PHP SDK 对我网站上的用户进行身份验证。在我最初的请求中,我传递了一个重定向 URL,一切都按预期工作,用户被发送回指定的 URL。

一旦进入这个我们称之为“中间页面”的页面,他们就会被重定向到我的第二个页面,我们称之为“主页”。在这里,您可能会注意到一个有趣的 #_=_ 附加到 URL。此问题在此处讨论:Facebook Callback appends '#_=_' to Return URL .

我已经在该页面上实现了 JavaScript 解决方案;然而,一个问题仍然存在。 URL 的实际散列部分仍然存在,即使奇怪的下划线字符消失了。所以,这不是一个大问题,URL 现在是 ./home#

我研究了一些解决这个问题的方法:How to remove the hash from window.location with JavaScript without page refresh? .

但是,显然这些解决方案需要刷新页面才能工作。显然,这不是执行此操作的最有效和用户友好的方法。

现在,我想既然我是,一旦我的用户返回到我的“中间页面”,将他们再次重定向到我的“主页”,就可以以某种方式跳过操作的刷新部分。不过,我可能完全错了。

因此,总结一下:有没有一种方法可以删除 URL 的剩余哈希部分,而无需实际重新加载我的“中间页面”,而是在我重定向到我的“主页”后将其删除?

编辑:我通过 PHP 重定向用户,使用:header('Location: ./home');

最佳答案

这在所有使用 javascript 的浏览器中实际上是不可能的,因为我过去曾尝试这样做。但是,您可以使用 HTML 5 来实现相同的目的,这使用了 HTML5 History API

function deleteHash(){ 
    // Remove the hash by rewriting URL without it.
    history.pushState("",document.title,window.location.pathname + window.location.search);
}

关于php - 从重定向 JavaScript 的 URL 中删除#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986087/

相关文章:

javascript - 为什么我的按钮输出 WebForm_DoPostBackWithOptions?

javascript三位数计数器怎么做?

javascript - 如何通过facebook graph api从相册中获取大图片

javascript - 我如何使用 Google Plus 和 Facebook Demo 不透明 Javascript?

PHP:活跃用户

php - Mysql - SQL 查询计数器每天、每月、每年和总计的 Web 访问量

PHP 和 MySQL 错误 : Object of class mysqli_result could not be converted to string

php - 购物车和库存管理

javascript - 如何使用正则表达式从数据属性中提取某些字符?

ios - 通过Facebook SDK询问 "you have already authorize "是否正常