gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:51:09 25 4
gpt4 key购买 nike

我目前遇到一个有趣的问题。我使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com