Rails Ajax 错误:Turbolinks 未定义

Zac*_*h S 1 ajax ruby-on-rails turbolinks

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

提前致谢!

阿贾克斯

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

控制器

  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
Run Code Online (Sandbox Code Playgroud)

YTo*_*rii 5

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

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require masonry/jquery.masonry
//= require turbolinks
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

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