如何使用AJAX从.php文件加载内容?

我使用AJAX和History.js将单独页面中的内容加载到索引页面。 但由于某种原因,我只能加载.html页面 – 我如何使这个function加载.php页面?

解决方案是在var = urlPath中添加扩展吗? 其他想法?

// AJAX LOAD ONKLIK $('body').on('click', 'a', function(e) { var urlPath = $(this).attr('href'); var title = $(this).text(); History.pushState({urlPath: urlPath}, title, urlPath); $("#content").load(urlPath); return false; }); 

编辑:

我使用没有扩展名的链接,例如加载页面’about.html’:

 About 

在本地测试时在浏览器中生成此URL:

 http://localhosthttps://stackoverflow.com/about 

多数民众赞成,但当我尝试以相同的方式加载.php-page fx’home.php’时没有任何反应 – 没有任何东西被加载。 看起来像AJAX / History.js以某种方式打破。

但是 – 如果我在页面’home.php’的链接中添加扩展名.php,则页面通过AJAX加载,就像.html-pages:

 About 

但是,此链接将在本地测试的浏览器中添加扩展名.php:

 http://localhosthttps://stackoverflow.com/home.php 

那么有人知道History.js在使用AJAX时是否只接受.html文件,或者我在这里遗漏了什么?

您的函数从标记a中的attibute href自动加载URL

您必须将此行修改为php文件

 var urlPath = $(this).attr('href'); 

用这个

 $('body').on('click', 'a', function(e) { var urlPath = $(this).attr('href'); var title = $(this).text(); History.pushState({urlPath: urlPath}, title, urlPath); //$("#content").load(urlPath); $.ajax({ url: urlPath, dataType: 'html', success : function(response){ $("#content").html(response); } }); return false; }); 

最后编辑/答案:

我找到了一个问题的答案 – 实际上这个问题与AJAX / History.js无关,但与我的本地测试服务器有关。

为了重写URL,所以链接将无法使用扩展,在.htaccess中添加以下规则将它放在服务器的根目录中 – 现在.html和.php – 如果链接看起来像About将加载页面About

选项+ FollowSymlinks

RewriteEngine On

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_FILENAME} .html -f

RewriteRule ^(。*)$ $ 1.html

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_FILENAME} .php -f

RewriteRule ^(。*)$ $ 1.php