(Ajax)登陆页面url而不重新加载内容

时间:2016-05-08 14:57:20

标签: javascript php jquery ajax

我找到了一种方法来更改页面网址,而无需使用

刷新页面
window.history.pushState

但是我无法登陆页面,或者在不同的浏览中打开它,我找不到错误页面

for exmp:

www.mydomain.com/profile

我想登陆此链接并转到个人资料页面。 我该怎么办。

   <script>
     $(document).ready(function(){
        //set trigger and container
        var trigger = $('#nav ul li a'),
            container = $('#container');
        //do on click
        trigger.on('click', function(e){
            /***********/
             e.preventDefault();

            //get the link location that was clicked
            pageurl = $(this).attr('href');


            //to change the browser URL to th  if(pageurl!=window.location){
              window.history.pushState({path:pageurl},'',pageurl);

           /* reload content without refresh */
            //set loading img
            $('#container').append('<div id = "loading">WAIT...  <img src = "img/ajax-loader-small.gif" alt="Currently loading"   /></div>');
            //change img location to center
            $("#loading").css({"position": "absolute", "left": "50%", "top": "50%"});
            //get the  trigger to reload the contents
            var $this = $(this),
                target = $this.data('target');

            container.load(target + '.php');


            return false;

        });
    });
    // fix url in the browser when click on backward and foreword  arrows
    $(window).bind('popstate', function() {
        $.ajax({url:location.pathname+'?rel=tab',success: function(data){
            $('#content').html(data);
        }});
    });



</script>

1 个答案:

答案 0 :(得分:1)

您需要确保您的网络服务器(例如Apache或Nginx)接受对该网址的请求并正确地重定向。有很多方法可以做到这一点。例如,您的Web服务器可以将所有或大多数请求重定向到进一步路由请求的中央PHP文件。这通常优选地在更复杂的系统中。但是,对于更简单的情况,使用类似mod_rewrite的内容可能就足够了(如果您使用Apache作为Web服务器)。

假设您的设置允许,将以下内容放在文档根目录中的.htaccess文件中会导致mod_rewrite将所有请求转发到www.mydomain.com/profilewww.mydomain.com/profile.php

RewriteEngine  on
RewriteRule    "^/profile$"  "profile.php"  [L]

这是一个非常简单的示例,只适用于该特定页面,但如果您有许多页面遵循相同的命名标准,那么您也可以应用更通用的规则。

如果您使用Apache之外的其他内容来为您的网页提供服务,那么几乎所有这些功能都有相似的功能。