我在rails 4应用程序上有一个ruby,它使用了turbolinks和jquery ajax请求,现在我遇到了一些麻烦。
jquery ajax请求在正常条件下完美运行。我有一个远程表单,其中只包含一个文本字段,可以在用户输入时自动发布:
<%= form_for(section, remote: true) do |form| %>
<%= form.text_area :title, 'data-behavior' => 'autosubmit', placeholder: "Untitled Section", rows: 1, maxlength: 255 %>
<% end %>
如果我输入字符,表单会成功发布。当它与turbolinks交互时,我的问题就出现了。以下是步骤:
此时,似乎turbolinks向我显示了我点击的页面的缓存版本,这意味着URL已更改。
在turbolinks更改页面后,似乎还会发送ajax请求。事实证明,此时request.referrer
是我点击的链接的URL,用于中断ajax请求,而不是请求实际来自的页面的URL。
所以,鉴于这一切,我不知道如何解决这个问题。也许我可以通过turbolinks取消page:change
上的所有ajax请求?
你有什么想法吗?提前谢谢!
修改
此外,我发现在ajax请求搞砸的情况下,ajax:before
事件不会被触发,但是当事情看起来按预期工作时会被触发。