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