通过AJAX的JQuery发布表单未触发rails respond_to format.js
我有一个简单的表单,上面有一个参数order。当我的下拉列表更改时,我称之为:通过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的处理#索引为*/*,我不知道*/*代表什么。有人能帮我吗?好的,我想出来了。当您有一个要阻止的响应单元时,如下所示:
$.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头。