Я использую пакет, установленный с Composer в моем проекте Laravel. Он содержит некоторый код JS для загрузки файлов. По крайней мере в одном случае загрузка не удалась, потому что с запросом не был отправлен токен CSRF.
Надеюсь решить эту проблему без редактирования кода вендора. Это соответствующий JS:
self.upload = function (file, filename) {
var formData = new FormData();
formData.append('file', file, filename);
formData.append('field', JSON.stringify(field));
formData.append('contentId', H5PEditor.contentId || 0);
// Submit the form
var request = new XMLHttpRequest();
request.upload.onprogress = function (e) {
if (e.lengthComputable) {
self.trigger('uploadProgress', (e.loaded / e.total));
}
};
// ...
}
Есть ли способ заставить Laravel автоматически отправлять токен CSRF с таким запросом?
С Axios я бы сделал
window.axios.defaults.headers.common = {
'X-CSRF-TOKEN': window.Laravel.csrfToken,
'X-Requested-With': 'XMLHttpRequest'
};
С jQuery я бы сделал
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
Но в моем случае такая библиотека не используется.
bootstrap.js
, затем сделалnpm run dev
, но пока не успел добавить заголовки... - person Pida   schedule 10.08.2020open
, но код, который вы вызываете, может фактически не использовать методopen
. - person TKoL   schedule 11.08.2020