Laravel. Dropzone. Как добавить csrf-токен при загрузке?


Dropzone, по умолчанию, при загрузке, отправляет POST-запрос, который Laravel, как и другие фреймворки, проверяет на наличие csrf-токена. Этого токена, конечно же нет и мы получаем соответствующую ошибку. Решить проблему можно достаточно просто — в этой статье пример, как добавить csrf-токен к запросу загрузки файла от Dropzone.

Речь идет даже не сколько об Laravel, сколько о данной возможности в принципе.

Итак, при инициализации Dropzone нужно добавить обработчик, который называется sending. Это такой себе промежуточный этап перед отправкой, в котором мы кк раз можем добавить нужные данные к запросу. Типовой пример выглядит так:

    var myDropzone = new Dropzone(
        "div#dropZoneContainer",
        {
            url: "{{ route('some-route-to-upload-action') }}",
            sending: function(file, xhr, formData){
                formData.append(
                    '_token',
                    {{ csrf_token() }}
                );
                formData.append(
                    'fk_offer',
                    {{ $model->id }}
                );
            }
        }
    );

Как видите, в примере к POST-запросу добавляется два параметра — один из которых как раз csrf-токен, который позволяет проходить проверку. Второй — просто демонстрация того, что добавлять можно бесконечное количество любых, нужных Вам, параметров.

Надеюсь статья была Вам полезной. Удачи!


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *