Это правда, что вы не можете передать хеш-данные на сервер. но иногда вам нужно получить URL-адрес с «#blablabla» с сервера, например, когда вы делитесь ссылкой с кем-то с «#», но сайт должен войти. ниже представлен другой способ мышления, может быть, он не отличается подробным описанием.
Во-первых, иногда вы хотите поделиться своей ссылкой с '#', например:
www.so.com#lala
Во-первых, вы можете изменить свой URL, используя javascript и передать некоторые данные с помощью '?' и '#' одновременно, например:
www.so.com?foo=lala&&flag=hash#lala
затем, когда '#' переходит на сервер, но вы можете получить данные из $ _GET [''], например:
if($_GET['flag'] === 'hash'){
// base url
$_SESSION['url'] = strtok('http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"],"?");
// hash data
$_SESSION['hash'] = $_GET['foo'];
}
затем вы можете делать все с данными '#', если вы хотите передать их клиенту, вы можете:
$url = $_SESSION['url']."#".$_SESSION['hash'];
header("Location:".$url);
Наконец, URL вернулся