Drupal 8 Forms - перестраивать токены dropzone js после отправки AJAX - PullRequest
0 голосов
/ 17 октября 2019

У меня есть форма Drupal 8, которую необходимо восстановить после отправки через Ajax. Форма работает нормально, но обратный вызов при загрузке Dropzone.js возвращает «Вы не авторизованы для доступа к этой странице». Я предполагаю, что это потому, что предыдущий $ токен используется, и Drupal видит, что срок его действия истек, так как он уже отправлен. ,Я не могу найти способ повторно инициализировать часть формы dropzone.

Я попытался полностью перестроить форму, но это вызывает много проблем. Я надеюсь, что смогу просто сбросить форму и заменить ее предыдущей.

Пример реализации формы Dropzonejs

$form['dropzone_assets'] = [      
  '#type' => 'dropzonejs',
  '#required' => TRUE,
  '#dropzone_description' => 'Drag Assets Here',
  '#max_filesize' => '...',
  '#timeout'    => '...',
  '#extensions' => '...',
];

Отправить ответ (где мне нужно обновить dropzoneтокены)

$response = new AjaxResponse();
$form_state->setRebuild(TRUE);
$response->addCommand(new ReplaceCommand('.visual-asset-form', $form)); 
return $response;

После отправки и восстановления формы все работает нормально, пока я не пытаюсь загрузить новый набор файлов, затем я получаю ответ от "/ dropzonejs / upload? token = .... . "как" 403 (запрещено) ". Отмечу, что отправляемый токен является новым по сравнению с последним, но по какой-то причине все еще недействителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...