ajax'script'数据类型不起作用?

时间:2012-04-16 03:47:06

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-3

我试图将此功能用于无限滚动:

<script type="text/javascript" charset="utf-8">
(function() {
  var page = 1,
      loading = false;

  function nearBottomOfPage() {
    return $(window).scrollTop() > $(document).height() - $(window).height() - 200;
  }

  $(window).scroll(function(){
    if (loading) {
      return;
    }

    if(nearBottomOfPage()) {
      loading = true;
      page++;
      $.ajax({
        url: '/paginate?page=' + page,
        type: 'get',
        dataType: 'script',
        success: function(data) {
          $(".res-list").append(data.responseText);
          $(window).sausage('draw');
          loading = false;
        }
      });
    }
  });

  $(window).sausage();
}());
</script>

问题是它没有将数据附加到无序列表,即使http://localhost:3000/paginate?format=js&page=2完美无缺。

如果我把console.log放在说明:if(nearBottomOfPage()) {的行下面,它会触发,所以我知道函数工作正常。然而,如果我把console.log放在成功之内:对于ajax函数,它永远不会触发....而且还有更进一步,如果我通过控制台运行ajax命令,它会在&#39; responseText&#39;中返回我需要的内容。 ,成功代码200 ...所以我不知道为什么它会在控制台日志中触发成功消息,如果它在我手动完成时成功返回200 ..

继承人控制器

  def paginate
    @resources = Resource.order(:created_at).page(params[:page]).per(20)

    respond_to do |format|
      format.js
    end
  end

1 个答案:

答案 0 :(得分:0)

我使用了以下代码:

$.ajax({ 
  url: '/paginate?format=js&page=' + page, 
  type: 'get', 
  dataType: 'text', 
  success: function(data) { 
    $(".res-list").append(data); 
    loading = false; 
  } 
});