2017-08-16 3308 views
0

我試圖讓喜歡按鈕,每個配方rails xhr.send((options.hasContent && options.data)|| null);錯誤

,但如果我點擊按鈕,像瀏覽器說

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

回報這個錯誤

我不知道爲什麼發生這個錯誤

這是我在軌

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'); 
      } 
     } 
    }); 
} 

route.rb

post '/like/:id'=>'recipes#like' 
0123碼

views/recipes/show.html.erb

<p> 
    <a id = "countlike" onclick="like(<%[email protected]%>)">Like it</a> 
</p> 

recipes_controller.rb

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

這是正確的在其他項目相同的代碼工作

+0

檢查Rails的日誌中,應該有一個完整的跟蹤的500錯誤,它會告訴你在哪裏的問題 –

+0

@ a.barbieri它說 處理通過的RecipesController#等爲JSON 參數:{「ID」 =>」 1「} 無法驗證CSRF令牌的真實性 –

+0

您的視圖中是否有'<%= csrf_meta_tags%>? –

回答

1

看起來你缺少你的數據屬性,您發佈的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'); 
      } 
     } 
    }); 
} 

希望它有幫助。乾杯!