Rails 5 - при обновлении jquery до последней версии происходит отправка формы. Ошибка 406 - PullRequest
0 голосов
/ 15 апреля 2019

Я использую jquery 3.4 для отправки форм, которые обычно не являются удаленными, изменяя URL-адрес на лету и устанавливая data-remote в true. Перед обновлением до jquery 3.4 форма была отправлена ​​без проблем.

Из различных исследований кажется, что я должен установить тип содержимого text / javascript или application / javascript, но добавив

$('#formid').attr('data-type','text/javascript')

не изменяет заголовки http. Перепробовал много разных синтаксисов без удачи.

Определение формы:

  form_tag url_for(:action => :create) , :method => :post , :id => :emails_manage do
      render :partial => "form"
  end

Форма подачи:

select_tag :email_controller , @opt.html_safe , {:class => :select , :onchange => "$('#emails_manage').prop('action', '#{url_for(:action => :refresh_actions , :id => @email ? @email.id : 'dummy')}');$('#emails_manage').attr('data-remote','true');$('#emails_manage').submit();"}

Контроллер:

  def refresh_actions    
    @controller = params[:email_controller]
    @action = ''    
    @changedfieldslist = ''        
  end

файл refresh_actions.js.erb

 $('#email_action').html("<%= escape_javascript(render(:partial => "actions")) %>");
 $('#changedfieldslist').html("<%= escape_javascript(render(:partial => "changedfieldslist")) %>");

Редактировать: мне удалось заставить его работать, превращаясь в настоящий вызов ajax.

select_tag :email_controller , @opt.html_safe , {:class => :select , :onchange => "$('#ignorerecordischanged').val('true');$.ajax({url: '#{url_for(:action => :refresh_actions , :id => @email ? @email.id : 'dummy')}',data: $('#emails_manage').serialize()})"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...