Sto lavorando su un'applicazione a singola pagina e sto utilizzando Laravel 5 per il servizio web.Come includere il token CSRF nelle intestazioni nella richiesta di caricamento Dropzone?
Tutte le forme sono presentati in modo asincrono e io uso un beforeSend su di loro per collegare il token CSRF, che prendo dalla meta tag in questo modo:
$.ajax({
url: '/whatever/route',
type: 'POST',
dataType: 'JSON',
data: $('form#whatever-form').serialize(),
beforeSend: function(request) {
return request.setRequestHeader('X-CSRF-Token', $("meta[name='token']").attr('content'));
},
success: function(response){
rivets.bind($('#whateverTag'), {whateverData: response});
},
error: function(response){
}
});
Tutte le mie forme funzionano bene, ma caricati zona di lancio non lo fa. Mi restituisce un'eccezione TokenMismatchException
. Ecco il mio codice zona di lancio per aggiornare la foto del profilo: mettere
$("#mydropzone").dropzone({
url: "/profile/update-photo",
addRemoveLinks : true,
maxFilesize: 5,
dictDefaultMessage: '<span class="text-center"><span class="font-lg visible-xs-block visible-sm-block visible-lg-block"><span class="font-lg"><i class="fa fa-caret-right text-danger"></i> Drop files <span class="font-xs">to upload</span></span><span>  <h4 class="display-inline"> (Or Click)</h4></span>',
dictResponseError: 'Error uploading file!'
});
Ho provato il beforeSend
anche qui:
$("#mydropzone").dropzone({
url: "/profile/update-photo",
addRemoveLinks : true,
maxFilesize: 5,
dictDefaultMessage: '<span class="text-center"><span class="font-lg visible-xs-block visible-sm-block visible-lg-block"><span class="font-lg"><i class="fa fa-caret-right text-danger"></i> Drop files <span class="font-xs">to upload</span></span><span>  <h4 class="display-inline"> (Or Click)</h4></span>',
dictResponseError: 'Error uploading file!',
beforeSend: function(request) {
return request.setRequestHeader('X-CSRF-Token', $("meta[name='token']").attr('content'));
},
});
Ho anche provato a mettere un ajaxSetup globale nel mio file principale in questo modo :
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="token"]').attr('content')
}
});
Non funziona ancora. Che cosa sto facendo di sbagliato? Come posso passare il token CSRF nell'intestazione con il dropzone upload in modo da non ottenere un'eccezione?
Hai scritto "Dropbox", ma non lo faccio vedi qualsiasi cosa nella tua domanda relativa a Dropbox. Forse intendevi dire Dropzone? Per ora rimuoverò il tag Dropbox. – smarx
Grazie per averlo portato a mia conoscenza. Era così stupido da parte mia. – Rohan