Jquery 提交带有查询和it的rails远程true表单';s仍在重定向/发送406
我花了太多时间在这上面,试图弄明白为什么它不起作用。我试过两种方法,但都有缺陷。它快把我逼疯了。这是我的代码。Jquery 提交带有查询和it的rails远程true表单';s仍在重定向/发送406,jquery,ruby-on-rails,ajax,ruby-on-rails-3,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,我花了太多时间在这上面,试图弄明白为什么它不起作用。我试过两种方法,但都有缺陷。它快把我逼疯了。这是我的代码。 方法1 表格 <%= form_for @order, remote: true do |f| %> ... <% end %><br> <%= form_for @order, remote: true do |f| %> ... <% end %><br> 控制器 def create #if @
方法1
表格
<%= form_for @order, remote: true do |f| %>
...
<% end %><br>
<%= form_for @order, remote: true do |f| %>
...
<% end %><br>
控制器
def create
#if @order.save, the usual
respond_to do |format|
format.js
end
end
def create
#if @order.save, the usual
respond_to do |format|
format.json { render json: @order }
end
end
现在,如果有format.html,它将遵循html重定向,如果没有,它将抛出406错误。它在没有javascript的情况下正常工作,但在标题中仍然显示html
方法2表格
<%= form_for @order, remote: true do |f| %>
...
<% end %><br>
<%= form_for @order, remote: true do |f| %>
...
<% end %><br>
控制器
def create
#if @order.save, the usual
respond_to do |format|
format.js
end
end
def create
#if @order.save, the usual
respond_to do |format|
format.json { render json: @order }
end
end
现在这一个工作得更好一些,没有重定向或406错误,但它忽略了complete或success块中的所有内容。因此,即使订单成功创建,页面仍保持不变
注意:此页面是一个子域页面。e、 g.blog1.mysite.com,但它在没有js的情况下工作。
我理想的方法是第一种方法。是否存在强制提交响应format.js的方法谢谢。您可以手动强制请求格式响应js。
在控制器中添加before筛选器
before_filter :default_format_js, only: :create
def default_format_js
reponse.headers['content--type'] = 'text/javascript'
request.format = 'js'
end
你能给我们更多关于406错误的信息吗?