如何从JavaScript发送GET请求到rails

时间:2011-12-11 07:21:18

标签: javascript ruby-on-rails json

我一直在谷歌上搜索,但仍然找不到任何答案。所以基本上在我的javascript函数中,我想向我的rails控制器发送一个GET请求,并且rails控制器将发回一个JSON对象。知道我该怎么做?日Thnx

2 个答案:

答案 0 :(得分:9)

使用jQuery我会做这样的事情:

在您想要的选择器和事件中,例如单击某个元素:

$(function() {
  $('#foo').click( function(){
    var params = '{"field1": "value1", "field2: "value2"}'; 
    $.get('/controller/bar', params, function(data){ 
      alert(data); 
    });
  });
});

然后在你的Rails控制器中:

def bar
  /// hack hack hack
  render :json => {"response" => "OK"}
end

你的routes.rb:

  match 'controller/bar' => 'controller#bar'

最后,根据您的代码更改“控制器”。 Firebug是你的朋友!

答案 1 :(得分:5)

您可以使用jQuery ajax从javascript发出getpost请求。

jQuery.ajax({
  url: "url to controller method", // it should be mapped in routes.rb in rails
  type: "GET",
  data: {field1 :value1, field2:value2}, // if you want to send some data.
  dataType: "json"
  success: function(data){
  // data will be the response object(json)
  }
});
来自rails的响应将类似于以下内容,您可以根据您的要求进行修改。

respond_to do |format|
  format.js { render :json => @json_data }
end