2014-11-05 91 views
-2

我有一个链接,如 www.example.com/#cauta/abcdefg,但没有方法可以找到直到现在的完整路径。 尝试了$ _SERVER的所有组合。 问题是,哈希标签#它没有被REQUEST_URI看到 谢谢!获取www.example.com/#cauta/abcdefg的完整网址

+3

'#'后面的所有内容只能由浏览器处理,并且永远不会发送到服务器。你可以访问这个唯一的方法是javascript – DarkBee 2014-11-05 20:40:58

+1

补充说,这是一个可怕的网址结构。互联网尝试将它用于“自然阅读”ajax网址,并且非常快速地发现,由于您发现的原因以及导航到文章内真正的片段ID位置是非常可怕的。 (因为URL中的#是一个片段ID,并将其视为一个偷偷摸摸的路径加载器打破了HTML约定) – 2014-11-05 20:42:42

回答

0

首先使用JavaScript获得哈希,并使用AJAX发送到得到处理是这样的:

<script> 
    $(document).ready(function(){ 
     var hash = window.location.hash.substr(1); 
     // hash now contains "cauta/abcdefg" 
     $.get("/process.php?hash=" + escape(hash), function(data){ 
      // append the result to the end of the body 
      $("body").append(data); 
     }); 
    }); 
</script> 

下一道工序使用PHP的数据(我们只是放弃它在这个例子中):

<?php 
var_dump($_GET["hash"]); 
+0

我需要得到每次都不相同的“abcdefg”。我需要在index.php打开url时读取它,然后处理脚本的其余部分。但是#之后的所有内容都没有被读取.. – CrY 2014-11-05 20:53:40

+0

你可以使用javascript抓取它,然后做一个ajax请求。 – 2014-11-05 20:54:33

+0

@CrY我更新了答案 – 2014-11-05 21:02:17

0

完整路径是http://www.example.com。 URL的其余部分用于在页面中查找资源。它也可用于页面上的任何javascript,这可能会决定根据此值呈现不同的信息。

如果您有Firefox或Chrome,请尝试以下操作:右键单击页面上的任意位置,单击“检查元素”,然后在网络选项卡上输入时钟。现在重新加载您的页面。您将看到用于生成此页面的所有资产。这可能会让你知道你想要的数据在哪里。

+0

是的,但JavaScript对我来说不是有用的 – CrY 2014-11-05 20:55:01