【发布时间】:2014-11-13 23:20:03
【问题描述】:
我有一个 Rails 4 应用程序,我需要强制控制器向所有请求(html 或 js)发送 js 响应。由于某种原因,当控制器接收到 html 请求时(例如,当用户通过输入 url 发出请求时),浏览器将响应显示为文本而不是执行代码。
控制器:
def action
render :template => 'sessions/home.js.erb', :content_type => "text/javascript"
end
sessions/home.js.erb:
$("#button").on("click", function(){
alert("got here");
});
浏览器不绑定#button,而是简单地将home.js.erb中的代码显示为文本。
我在控制器中尝试了以下选项,但结果相同 - 浏览器只显示文本与执行代码:
render js: "alert('got here')";
或
render :format => :js, :template => 'sessions/home.js.erb'
或
respond_to do |format|
format.html {render :template => 'sessions/home.js.erb', :content_type => 'text/javascript'}
end
或
respond_to do |format|
format.html {render :template => 'sessions/home.js.erb', :content_type => 'application/javascript'}
end
谁能帮我弄清楚我需要做什么才能让浏览器执行 javascript?
【问题讨论】:
-
我也面临同样的问题 - 你找到解决方案了吗?
-
你有没有找到解决办法?
标签: javascript ruby-on-rails controller render