ajax调用的双重请求首先获取状态400秒获取状态200

时间:2015-04-15 14:31:04

标签: jquery ruby-on-rails ajax

我有以下操作来创建记录:

def create
    @categorization = Categorization.new(categorization_params)
    @categorization.save
    respond_to do |format|
      format.json {  render json: {categorization: @categorization.to_json},  success: 200  }
    end
  end

  private
  def categorization_params
    params.require(:categorization).permit(:user_id, :category_id)
  end

这是我的jquery ajax代码:

$("#save-category").click(function(){
    var category_id = $('#categorization_category_id').val();
    var category_name = $('#categorization_category_id  option:selected').text();
    var user_id = "#{current_user.id}";
    var cat_id;
    $.ajax({
      url: "#{dashboard_categorizations_path}",
      type: 'POST',
      dataType : 'json',
      data: {'user_id': user_id, 'category_id': category_id},
      success: function(result) {
        console.log(result);
        // cat_id = JSON.parse(result.id);
        // alert(cat_id);
      },
      error: function(result) {
        console.log(result);
        // cat_id = JSON.parse(result.id);
        // alert(cat_id);
      }
    }); // end ajax call
    $("#categoriamensaje").show();
    var leadMessage = setInterval(function(){
          $("#categoriamensaje").hide();
        }, 3000);
  });

这是我的检查员给我看的:

enter image description here

正如你所看到的,点击按钮后我会回复状态400,状态为200的回答:

第一个给我以下回应:

  

ActionController :: ParameterMissing at / dashboard / categorizations

     
    

param丢失或值为空:分类

  
     

app / controllers / dashboard / categorizations_controller.rb,第30行

     

```ruby 25 redirect_to   edit_dashboard_home_path(current_user.id)26结束27 28   私人29 def classification_params

     
    

30 params.require(:categorization).permit(:user_id,:category_id)31 end 32 end

  

```

和第二个:

categorization:"{"id":60,"user_id":1,"category_id":7,"created_at":"2015-04-15T14:27:55.039Z","updated_at":"2015-04-15T14:27:55.039Z"}"

记录已创建,但我需要捕获ajax响应才能在视图中显示信息。

请帮忙。

1 个答案:

答案 0 :(得分:0)

看起来你需要将你发布的JSON有效负载包装在这样的categorization对象中:

{ "categorization": { "user_id" : "1", "category_id" : "1" } }

所以你的JQuery代码应该是这样的:

data: { 'categorization' : { 'user_id': user_id, 'category_id': category_id} }