通过远程提交表单的Rails:在Safari(仅限Safari)上的true失败

时间:2018-05-24 09:46:10

标签: javascript ruby-on-rails ajax safari

我的表单在Chrome和Firefox中通过remote: true完美无缺地提交。但是,在Safari(桌面和移动设备)上,表单根本没有提交。网络在处理状态中“冻结” - http://take.ms/IdPyw 它与this issue非常相似,但它与文件输入无关。

我的代码如下:

形式:

=form_with(model: Request.new, class: 'g-form g-contact__form', id: 'form', remote: true) do |f|
      =f.file_field :attachments, class: 'g-input__field-file', multiple: true          
      =f.submit 'Отправить', class: 'g-btn g-btn_submit', id: 'form_submit', data: { "disable-with": "Отправляем..." }

我的controllers/requests_controller.rb

def create
    allow_send = true

    @request = Request.new(request_params)
    if allow_send
      respond_to do |format|
        if @request.save
            format.js
          RequestMailer.notify_admin(@request).deliver_now
        else
          format.js { render partial: 'fail' }
        end
      end
    else
      @request.errors.add(:bot, "К сожалению, у нас подозрение, что вы бот. Попробуйте заполнить форму ещё раз.")
      respond_to do |format|
        format.js { render partial: 'fail' }
        format.html
      end

    end
  end

我的create.js.rb

$('#form-popup').toggle();
$('#success-popup').toggle();

如果我转向更经典的方法,意味着通过html响应并重定向到特定页面,该表单在Safari中有效。但是,我需要使用该表单,就像它现在在Chrome中一样。

我的计划B方法是重写所有代码,负责提交表单并检查普通JS中的错误(即$.ajax({type: "POST",等...),但我真的想留下工具,铁轨提供。

Safari有解决方法吗?

更新 我能够检索错误消息。它声明:Failed to load resource: Network connection lost(屏幕截图 - http://take.ms/yrAMI

0 个答案:

没有答案