Загрузка файла FormData в модель Django?
Я пытаюсь загрузить файл через jQuery ajax-запрос, используя FormData
. Когда я устанавливаю processData
и contentType
в false
, я получаю ошибку Forbidden (CSRF token missing.)
. Когда я удаляю их, я получаю ошибку Uncaught TypeError: 'slice' called on an object that does not implement interface Blob.
.
Что я упускаю?
$(".form").on("submit", function(event) {
event.preventDefault();
$.ajax({
url: "/upload_profile_pic/",
type: "POST",
processData : false,
contentType : false,
data: { "profile_pic": formData.get("file"), "csrfmiddlewaretoken": $(this).find("input[name='csrfmiddlewaretoken']").val() },
},
success: function (data) {
console.log("success: "+data);
},
error: function (data) {
console.log(data);
}
});
});
Извините, я уже нашел ответ здесь. Вы должны использовать cache : false
и тогда все работает!
formData.append("profile_pic", file);
//...
formData.append("csrfmiddlewaretoken", $(this).find("input[name='csrfmiddlewaretoken']").val());
$.ajax({
url: action,
type: "POST",
data: formData,
cache : false,
processData : false,
contentType : false,
success: function (data) {
console.log("success"+data);
},
error: function (data) {
console.log(data);
}
});