[英]Rails 4 + jQuery: PUT ajax request
Ajax请求对我来说仍然很新,但是我有一个配方索引,带有一个按钮,可让您收藏自己喜欢的配方。
<i class="favorite" data-recipe="<%= recipe.id %>">
...我正在尝试对路线使用PUT请求:
favorite_recipe PUT /recipes/:id/favorite(.:format) recipes#favorite
...使用以下jQuery函数:
$(".favorite").click(function(){
$(this).toggleClass("favorited");
var recipe_id = $(this).data("recipe");
// displays properly when I console.log() it
var url_path = '/recipes/' + recipe_id + '/favorite'
$.ajax({
url: url_path,
type: 'PUT'
})
})
但在开发人员控制台中,我收到404错误,显示的网址是Request URL:http://localhost:3000/recipes
而不是http://localhost:3000/recipes/:recipe_id/favorite
。
我究竟做错了什么? 我是否需要使用data参数来提供ID?
好的,我正在更改答案,因为我注意到您确实有该请求的路线。
我相信您会收到此错误,因为您没有在控制器中正确处理请求。 尝试将以下内容添加到您的控制器,以使其处理JSON请求。
respond_to do |format|
format.json do
render :json => {success: 'yes'}
end
end
尝试一次。
$(".favorite").click(function(){
$(this).toggleClass("favorited");
var recipe_id = $(this).data("recipe");
// displays properly when I console.log() it
var url_path = "<%= favorite_recipe_path %>"
$.ajax({
url: url_path,
type: 'PUT',
data : JSON.stringify({id: recipe_id}),
dataType: "json",
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.