使用Ajax从Rails控制器获取数据

时间:2015-09-11 20:12:29

标签: javascript ruby-on-rails ruby

我正在尝试在提交表单时使用Ajax获取模式的实例(采用JSON格式)。目前,在警报时,它不输出任何内容,空白。

alert('<%= @modal_data.to_json.html_safe %>');输出JSON数据,但通过Ajax调用的alert(data);不会输出任何内容。

控制器

class ModalController < ApplicationController
  def modal_index
    @modal_data = Modal.where(:var => params[:attr1])
    respond_to do |format|
      format.html
      format.json {render json: @modal_data}
    end
  end
end

的JavaScript

$(document).ready(function() {
  $('#my_form').on("submit", function () {
    $.ajax({
      type: "GET",
      dataType: "json",
      url: "/modal/modal_index",
      success: function(data){
        alert(data);
      }
    });
  });
});

1 个答案:

答案 0 :(得分:1)

为了使其与JSON一起使用,您需要将内容类型设置为application/json

如果您$.ajax致电

$(document).ready(function() {
  $('#my_form').on("submit", function () {
    $.ajax({
      type: "GET",
      contentType: "application/json",      
      url: "/modal/modal_index",
      success: function(data){
        alert(data);
      }
    });
  });
});

此外,您似乎没有提供查找模型所需的参数(attr1)。

保持控制器的标准,通过iditem_id以获取所需的对象。