【发布时间】:2012-11-22 15:23:17
【问题描述】:
在 .erb 视图中考虑以下形式:
<%= form_tag(harvester_next_url, :method => "post", :remote => true, "data-type" => :json, :id => "answerForm") do %>
<div id="dynamicFormContent"></div>
<% end %>
在某些情况下,我想在 next 方法中发出一个 JS 回调
render :js => "window.location = '#{definitions_path}'"
但是,这不会在浏览器中执行。响应正文中有“window.location...”,content-type 设置为text/javascript,请求的accept 也有text/javascript。
Rails 版本是 3.2.8。
一些附加信息:我不想将表单操作切换为使用 JS 格式,因为 JS 回调代码只是控制器可能的响应之一。另一次,我需要一些 JSON 来处理。
问题:是否有可能使其工作不使用客户端重定向(即从 JSON 响应中获取 window.location)等? AFAIK,这适用于非远程表单。
ADD 当 XHR 完成时,它会以 status = "parsererror" 结束。显然,这是因为 jQuery 尝试将响应解析为 JSON,即使它是 text/javascript。这个问题仍然悬而未决。
【问题讨论】:
标签: jquery ruby-on-rails ruby ruby-on-rails-3 ujs