繁体   English   中英

Rails 4 + jQuery:PUT ajax请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM