2011-05-25 111 views
0

我想在google中可以抓取的ajax中更改我的网站。解析URL如何在Ajax中包含#

随着网址: Http://mysite/artices/view/#!/1234 如何,我可以在上述网址

+2

的链接锚定部分不发送到服务器,除非你使用Javascript来提取它并单独发送它。 – 2011-05-25 15:02:09

+1

请不要:http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs – Quentin 2011-05-25 15:07:22

+0

谢谢,我想我会在html5中使用pushState – meotimdihia 2011-05-25 15:26:02

回答

0

我想你问一个正则表达式拿到1234,所以我会给你一个:

/#!\/(\d+)/

的第一个(也是唯一的)反向引用是你想要的数字。

+0

不,我不要求正则表达式,马克B答案正确,因为我问 – meotimdihia 2011-05-25 15:06:42

0

嗨你不能“#”到服务器后发送的字符串,这是你可以做到这一点,我已经创建了完整的工作示例为您提供:

<?php 
    if($_POST['hello']) 
    { 
     print_r($_POST); 
     echo '<br>'; 
     echo $_SERVER['REQUEST_URI'] . '<br>';   
     die(); 
    } 

?> 
<html> 
    <head> 
     <script type="text/javascript" language="javascript" src="jquery.js" ></script> 
     <script type="text/javascript" language="javascript"> 
      $(document).ready(function() { 
       $('#look').click(function() 
       { 
        var url = 'http://localhost/tests/form.php#cool=1'; 
        var paramAfter = url.split('#')[1]; 

        $.post('http://localhost/tests/form.php#cool=1', "hello=1&paramAfter=" + encodeURIComponent(paramAfter), function(data) 
        { 
         $('#content').html(data); 
        }); 
        return false; 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <a href="#" id="look">Click me</a> 
     <div id="content"> 
      No content 
     </div> 
    </body> 
</html>