Rails 4:形成远程自定义 ajax 请求

Rails 4: form remote custom ajax request

本文关键字:自定义 ajax 请求 Rails      更新时间:2023-09-26

我有一个表单,用户可以在其中粘贴图像的URL。当用户提交表单时,我想先发出一个 ajax GET 请求,该请求下载图像客户端并在出于安全目的继续之前对其进行检查。

我的问题是远程表单已经发出了 ajax 请求,我只能使用之前和完整绑定的那些来访问它。但实际上我需要将它们链接起来。映像检查完成后,继续从窗体中发出 POST ajax 请求。

我该怎么做?

(Sry,我正在使用Slim)

= form_for @post, html: { class: "form-horizontal", role: "form" }, remote: true  do |f|
  .form-group
    = f.label :author, "Name", class: "col-xs-1 control-label"
    .col-xs-11
        = f.text_field :author, class: "form-control", placeholder: "Name"
  .form-group
    = f.label :title, "Titel", class: "col-xs-1 control-label"
    .col-xs-11
        = f.text_field :title, class: "form-control", placeholder: "Titel"
  .form-group
    = f.label :text, "URL", class: "col-xs-1 control-label"
    .col-xs-11
        = f.url_field :text, class: "form-control", placeholder: "http://"

  .form-group
    .col-xs-offset-1.col-xs-11
      = f.button :submit, class: "btn btn-default"

您可以尝试侦听 UJS 导轨适配器提供的ajax:beforeajax:beforeSend事件。

https://github.com/rails/jquery-ujs/wiki/ajax

根据文档,如果您使用return false"停止"这些事件,则远程表单请求永远不会通过。因此,您可以通过ajax在提交表单之前下载其中一个事件中的图像,并在那里进行检查。