У меня есть форма 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 (запрещено) ". Отмечу, что отправляемый токен является новым по сравнению с последним, но по какой-то причине все еще недействителен.