Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 提交带有查询和it的rails远程true表单';s仍在重定向/发送406_Jquery_Ruby On Rails_Ajax_Ruby On Rails 3 - Fatal编程技术网

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错误的信息吗?