由于某些原因,当文件具有php扩展名时,以下代码不起作用:
<ul class="issues">
<li><a href="jobs.php">Jobs</a></li>
<li><a href="town-centres.php">Town Centre</a></li>
</ul>
<div id="input"></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
(function(){
var wrap = $('#input');
$('ul.issues a').on('click', function(e){
var href = $(this).attr('href');
wrap.load(href + ' article');
e.preventDefault();
});
})();
</script>
在本地工作正常但远程服务器上没有任何内容,除非我将文件扩展名更改为htm。控制台显示已加载XHR。请参阅broken PHP version和working .htm
version
答案 0 :(得分:0)
问题是PHP脚本(或者在这种情况下不是)返回...
wrap.load(href + ' article');
此jQuery加载href
并获取<article>
部分并将其加载到wrap
元素中。如果您使用类似Firebug(或任何浏览器调试器,您可以在其中查看使用AJAX加载的内容),您将看到PHP脚本返回以下内容:
<div id="content">
<h1>Do new supermarkets really create jobs?</h1>
etc...
.htm
版本返回的位置:
<div id="content">
<article>
<h1>Do new supermarkets really create jobs?</h1>
etc ...
所以你可以看到PHP没有回复<content>
标签 - 因此没有HTML添加到wrap
元素
您有2个选项可以解决问题..
wrap.load(href + ' #content');
<article>