" AJAX:完整"没有射击Heroku

时间:2015-03-11 21:02:36

标签: ruby-on-rails ajax heroku

我正在使用featherlight弹出ajax调用生成的表单到我的Rails服务器。表单使用remote => true提交数据,服务器使用json进行响应。在我的javascript中我有

$(document).on('ajax:complete', handleAjaxComplete)

当表单提交时,我关闭表单的featherlight框并用一个微调器打开一个新的,然后等到ajax:complete触发。

奇怪的是,在我的本地开发环境中,它会触发,我可以处理响应。在heroku上它没有(即使json通过状态200发送并且看起来很好。

我唯一的理论是,因为我正在关闭羽毛灯盒但是它不应该在我的本地机器上工作吗?为什么我会收到一个响应,但没有调用handleAjaxComplete - 控制台中没有错误(实际上我甚至得到了“XHR已完成加载:POST< url>”日志)?

1 个答案:

答案 0 :(得分:1)

这里讨论的问题是https://github.com/rails/jquery-ujs/issues/223

归结为我的表格在灯箱中。提交表单时,灯箱会淡出。在我的本地机器上,webrick响应速度足够快,表格在淡出时仍会触发ajax:complete。但是,在heroku上,在$.ajax收到响应时,表单已从DOM中删除,因此没有任何反应。我可以通过使用jquery自己来解决这个问题:

$.ajaxComplete()

(或者绑定到那个事件)但是我最后只是打开表单,上面有一个模态微调器,直到服务器收到响应。