Как вставить токен csrf в LPology/Simple-Ajax-Uploader?Вставить токен csrf для загрузки файла
Я пробовал с customHeaders
, но безуспешно. Хотя, $("input[name='csrfmiddlewaretoken']").val()
дает qEN1kNfYYkAasfqBn3AigICJmz4MIlei
var uploader = new ss.SimpleUpload({
button: btn,
url: 'file_upload/',
name: 'uploadfile',
customHeaders: {
'X-CSRF-TOKEN': $("input[name='csrfmiddlewaretoken']").val()
},
multipart: true,
hoverClass: 'hover',
focusClass: 'focus',
responseType: 'json',
startXHR: function() {
progressOuter.style.display = 'block'; // make progress bar visible
this.setProgressBar(progressBar);
},
onSubmit: function() {
msgBox.innerHTML = ''; // empty the message box
btn.innerHTML = 'Uploading...'; // change button text to "Uploading..."
},
onComplete: function(filename, response) {
btn.innerHTML = 'Choose Another File';
progressOuter.style.display = 'none'; // hide progress bar when upload is completed
if (!response) {
msgBox.innerHTML = 'Unable to upload file';
return;
}
if (response.success === true) {
msgBox.innerHTML = '<strong>' + escapeTags(filename) + '</strong>' + ' successfully uploaded.';
} else {
if (response.msg) {
msgBox.innerHTML = escapeTags(response.msg);
} else {
msgBox.innerHTML = 'An error occurred and the upload failed.';
}
}
},
onError: function() {
progressOuter.style.display = 'none';
msgBox.innerHTML = 'Unable to upload file';
}
});
};
Полный пример: https://github.com/LPology/Simple-Ajax-Uploader/tree/master/examples/basic_example
Я использую Django 1.9 на бэкэнда вместо этого. И моя форма внешнего интерфейса выглядит следующим образом:
<form>{% csrf_token %}
...
</form>
Dgango тег {% csrf_token %}
производит <input type='hidden' name='csrfmiddlewaretoken' value='7CzH2kocMFDiGhSBlBY5OelS6oSND1Iw' />
для страницы разметки.
Вы правы, правильным названием свойства является 'X-CSRFToken'. Большое спасибо. – trex