ajax页面加载器出错404错误

时间:2017-07-28 16:29:25

标签: javascript ajax get

我在页面上有一个ajax post loader。调用它的链接如下所示:

b

这是ajax:

<div class="load_more_cont">
  <p align="center">
    <a href="http://www.example.com/category/books/page/5/" title="Load more"><span class="fa fa-angle-down fa-fw button" aria-hidden="true"></span></a>
  </p>
</div>

它工作正常但是当我到达该类别的第5页(如上面的第5页书籍)时,我收到404错误。如果我在浏览器中加载类别URL没有问题 - 第5页和第6页都存在并加载。一切都在同一台服务器上。如果我没有选择一个类别,所以网址看起来像这个$('.load_more_cont a').on('click', function(e) { e.preventDefault(); //how many posts per page var posts_per_page = 12; //set button to contain spinning loading icon $(this).html('<span class="fa fa-refresh fa-spin fa-fw loading" aria-hidden="true">'); console.log($(this).attr('href') + '#main_container'); $.ajax({ type: "GET", url: $(this).attr('href') + '#main_container', dataType: "html", success: function(out) { //result of query result = $(out).find('#load_posts_container .home_post_box'); //append result to posts container $('#load_posts_container').append(result).masonry( 'appended', result, true ); //find the next link in the returned result nextlink = $(out).find('.load_more_cont a').attr('href'); //if (nextlink != undefined) if (result['length'] == posts_per_page) { //add the next link to the load more button $('.load_more_cont a').attr('href', nextlink); $('.load_more_cont a').html('<span class="fa fa-angle-down fa-fw button" aria-hidden="true">'); } else { //remove the load more button and add a clearing div $('.load_more_cont').remove(); $('#load_posts_container').append('<div class="clear"></div>'); } }, error: function(xhr, ajaxOptions, thrownError){ console.log(xhr.status); console.log(thrownError); } }); }); 那么它也可以正常工作。知道问题可能是什么?

2 个答案:

答案 0 :(得分:1)

你的if条件没有意义imo:if (result['length'] == posts_per_page)。如果您有多个posts_per_page项目,则会出现分页链接,如果更多或相等,则不会出现。如果页面上有5个项目posts_per_page = 5,则表示没有下一页。

如果你在最后一页,通常不应该有分页链接,所以检查应该是那样的

if ($(out).find('.load_more_cont a').length > 0) { ...

我的猜测是,您在最后一页上有posts_per_page项内容,并设置了undefined的下一个链接,从而导致错误。

答案 1 :(得分:0)

解决方案是将wordpress中的每页帖子设置(我设置为16),帖子的显示方式(我每页显示12个)以及如何处理404(通过索引)的组合。 php而不是404.php页面)。因此从某种意义上说,从GET获得404完整页面是完全正确的,即使它看起来像是一个矛盾。一旦我给了wordpress一个404.php页面,我就能分开问题,然后跟踪由于每页设置而导致页面计数不正确。