0

我有一个动作叫做action_1。当用户输入/action_1时,会出现一个 html 响应。但是,我也有一个jQuery.get('/action_1')电话,应该会收到一个 js 响应。我有一个action_1.js.erb文件,但不知何故,我得到的响应是 html。我的操作中有以下 respond_to 块:

respond_to do |format|
  format.html
  format.js { render :layout => false }
end

到底是怎么回事?谢谢!

4

2 回答 2

1

我会用

jQuery.getJSON('/action_1')

所以它请求application/json而不是text/html

于 2012-11-28T19:21:08.293 回答
1

我发现了发生了什么:jQuery.get()默认情况下需要一个 html 响应。当操作中没有指定任何内容时,Rails 将使用html.erb文件应答调用,并且在给出我发布的两个选项时(format.htmlformat.js)。js.erb如果未指定任何内容且未找到,它将以 a 响应html.erb,并且当指定它应以format.jsand not响应时format.html。在任何情况下,jQuery.getJSON默认情况下都需要一个 json(并且不运行任何 javascript)并jQuery.getScript()执行 javascript 代码

于 2012-11-30T18:34:53.813 回答