Rails Ajax Error: "Turbolinks is not defined"

Rails Ajax Error: "Turbolinks is not defined"

我正在使用 Rails 4.2,我想向我的服务器发送一个 ajax 请求。但请求总是失败,错误为 Turbolinks is not defined。我的 rails 控制台 returns 200 ok 响应。 我正在使用 'jquery-turbolinks' gem.

提前致谢!

Ajax

$.ajax({
  type: "PUT",
  url: "http://localhost:3000",
  data: xx,
  success: function(data){
     alert("success");
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
       alert("some error");
  }
});

控制器

  def upvote
     # code here
     @vote.save
     respond_to do |format|
       format.html { redirect_to :back }
       format.json { head :ok }
       format.js { head :ok }
     end
   end

在 application.js 中,您是否需要 jquery.turbolinks 在 jquery 和 turbolinks 之间,如下所示?

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require masonry/jquery.masonry
//= require turbolinks
//= require_tree .

如果您的 turbolinks 版本是 5,jquery-turbolinks gem 不支持 turbolinks 5。 因此,目前,您必须添加 JS 以实现兼容性 this issue(请参阅 Lowryderch 的评论)。 将 turbolinks-compatibility.coffee 放在 app/assets/javascripts/ 文件夹下。