Ruby on rails rails ajax请求

Ruby on rails rails ajax请求,ruby-on-rails,ajax,ruby-on-rails-3,Ruby On Rails,Ajax,Ruby On Rails 3,我在发送Ajax请求时遇到问题。当你点击链接时,请求被发送到服务器3次,但没有得到答复 为什么请求被发送三次以破坏? 我在形成查询时哪里出错了? 代码: run.html.erb ... <%= link_to "Next", "#", :id => 'next', :class => ... 控制器 def tff respond_to do |format| format.js render :text => "hello" end en

我在发送Ajax请求时遇到问题。当你点击链接时,请求被发送到服务器3次,但没有得到答复

为什么请求被发送三次以破坏?

我在形成查询时哪里出错了?

代码:

run.html.erb

...
<%= link_to "Next", "#", :id => 'next', :class =>
...
控制器

def tff
    respond_to do |format|
      format.js render :text => "hello"
    end
end

我最近遇到的一件事是jquery试图运行结果,因为默认数据类型将.js解释为脚本,而不是文本。您可能需要向ajax调用添加一个
数据类型:“text”
。我不知道这怎么会转化为三个电话


我原以为返回false会阻止单击继续,但正如apreading建议的那样,使用preventDefault()可能更好。

我猜单击事件被绑定了多次,可能是因为脚本被调用了多次。由于我不熟悉rails,所以不确定多次调用的原因是什么

要避免这种情况,您可以在绑定click事件之前解除它的绑定,或者在api上使用

function ajaxRequest(){
    $.ajax({
      type: 'POST',
      url: '/engine/tff',
      success: function(data){
        alert("ok");
        $("#question").html(data);
      }
    });
    return false;
  }
$(“#下一步”)。解除绑定(“单击”)。绑定(“单击”,ajaxRequest)

$(文档)。在(“单击”,“下一步”,ajaxRequest)

另外,也不确定您是否试图在文档准备就绪时绑定,并且代码中存在键入错误。但它应该像这样包装:

$(function(){
  $("#next").click(ajaxRequest);
});

您应该防止默认的点击操作返回false应该注意。。。
$(function(){
  $("#next").click(ajaxRequest);
});