rails xhr.send( ( options.hasContent && options.data ) || null ); 错误

Don*_*Lee 0 javascript ruby ajax jquery ruby-on-rails

我试图为每个食谱制作类似按钮

但如果我点击按钮浏览器说

xhr.send( ( options.hasContent && options.data ) || null );

返回此错误

我不知道为什么会出现这个错误

这是我在 Rails 中的代码

application.js

function like(id){
    $.ajax({
        url:"/like/" + id,
        type:"POST",
        dataType:"json",
        success: function(data){
            if(data.result){
                $("#countlike").html("likes " + data.count);
                // $("#count").removeAttr('onclick');
                // $("#count").attr('disabled', 'disabled');
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

route.rb

post '/like/:id'=>'recipes#like' 
Run Code Online (Sandbox Code Playgroud)

views/recipes/show.html.erb

<p>
  <a id = "countlike" onclick="like(<%=@recipe.id%>)">Like it</a>
</p>
Run Code Online (Sandbox Code Playgroud)

recipes_controller.rb

  def like
      likes = Recipe.find(params[:id]).likes           
      result = likes.create 
      render json:{result: result, count: likes.count}
  end
Run Code Online (Sandbox Code Playgroud)

它在其他项目相同的代码中正常工作

小智 5

看起来您在发布可能引发错误的 ajax 请求中缺少数据属性。

function like(id){
    $.ajax({
        url:"/like/" + id,
        type:"POST",
        dataType:"json",
        data: my_data, // <--- HERE
        success: function(data){
            if(data.result){
                $("#countlike").html("likes " + data.count);
                // $("#count").removeAttr('onclick');
                // $("#count").attr('disabled', 'disabled');
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。干杯!