我的ajax回调没有在我的生产环境中触发。但是,他们正在发展中,没有任何错误。为了讨论的缘故,我会简化一些事情。Rails ajax:成功回调没有在生产中触发
比方说,我有一个使用链接remote: true
:
<%= link_to "Add Foo", new_foo_path, remote: true, id: 'new-foo' %>
foos_controller.rb
class FoosController < ApplicationController
def new
@foo = Foo.new
render partial: 'form' if request.xhr?
end
end
使用Chrome浏览器的控制台,我绑定到ajax:success
:
$(document).on("ajax:success", "#new-foo", function() { console.log("success!"); });
在开发这个作品精细;我得到了“成功!” Chrome控制台中的消息。
然而,在生产中,却没有。正在提出请求,响应是form
部分,但回调不会触发。
任何想法?
PS。以下并不工作。
$("#new-foo").bind("ajax:success", function() { console.log("success!"); })
config/environments/production.rb
没有变化。
编辑:事实证明,ajax:当我点击生产链接时触发错误。
$(document).on("ajax:error", "#new-foo", function() { console.log("error"); });
我的生产日志不显示任何错误,并在Chrome开发者工具的网络选项卡显示与部分作为身体200 OK
响应。
但是,内容类型标题是生产中的text/javascript
,但text/html
正在开发中。为什么相同的代码在生产中响应text/javascript
?