Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
通过AJAX的JQuery发布表单未触发rails respond_to format.js_Jquery_Ajax_Ruby On Rails 4 - Fatal编程技术网

通过AJAX的JQuery发布表单未触发rails respond_to format.js

通过AJAX的JQuery发布表单未触发rails respond_to format.js,jquery,ajax,ruby-on-rails-4,Jquery,Ajax,Ruby On Rails 4,我有一个简单的表单,上面有一个参数order。当我的下拉列表更改时,我称之为: $.post("/busca", $("#order_form").serialize(), dataType: "script") 在rails控制器端,我有一个简单的format.js来处理ajax调用。 问题是这不起作用。js.erb模板永远不会呈现 我的日志显示BuscaController的处理#索引为*/*,我不知道*/*代表什么。有人能帮我吗?好的,我想出来了。当您有一个要阻止的响应单元时,如下所示:

我有一个简单的表单,上面有一个参数order。当我的下拉列表更改时,我称之为:

$.post("/busca", $("#order_form").serialize(), dataType: "script")
在rails控制器端,我有一个简单的
format.js
来处理ajax调用。 问题是这不起作用。
js.erb
模板永远不会呈现


我的日志显示BuscaController的
处理#索引为*/*
,我不知道
*/*
代表什么。有人能帮我吗?

好的,我想出来了。当您有一个要阻止的响应单元时,如下所示:

respond_to do |format|
  format.html
  format.js
end
这是行不通的。您需要首先设置js响应,而不是HTML响应。别问我为什么。 这是一个适合我的:

respond_to do |format|
  format.js
  format.html
end

好吧,我想起来了。当您有一个要阻止的响应单元时,如下所示:

respond_to do |format|
  format.html
  format.js
end
这是行不通的。您需要首先设置js响应,而不是HTML响应。别问我为什么。 这是一个适合我的:

respond_to do |format|
  format.js
  format.html
end

似乎所有post参数都是必需的:

jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
在执行此操作时,我能够获得js:

$.post("/busca", $("#order_form").serialize(), function() { }, "script")

无论
格式.x
顺序如何

似乎所有post参数都是必需的:

jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
在执行此操作时,我能够获得js:

$.post("/busca", $("#order_form").serialize(), function() { }, "script")

无论是
format.x
order

看起来您没有在请求中指定格式看起来您没有在请求中指定格式仍然没有解释为什么它在没有强制回调的情况下工作,当您使用format.js first时仍然没有解释为什么它在没有强制回调的情况下工作,使用format.js first时,请检查浏览器发送的Accept标头。如果Accept标头有“/”(即任何格式都可以),则将触发respond_to中的第一个格式块。如果希望确保调用.js块,那么一种方法是确保Accept头具有“text/javascript”。您可以在通过jQuery或任何框架发送任何ajax请求时设置accept标头。请检查浏览器发送的accept标头。如果Accept标头有“/”(即任何格式都可以),则将触发respond_to中的第一个格式块。如果希望确保调用.js块,那么一种方法是确保Accept头具有“text/javascript”。您可以在通过jQuery或任何框架发送任何ajax请求时设置accept头。