1
我需要從阿賈克斯發送PDF文件來調用到Django的服務器,而無需表單數據如何發送使用AJAX調用文件而不表單數據
我需要從阿賈克斯發送PDF文件來調用到Django的服務器,而無需表單數據如何發送使用AJAX調用文件而不表單數據
您可以將您的文件作爲原始文件緩衝區如下:
var input = $('#input');
input.change(function(event) {
var file = this.files[0];
if (!file) return;
return $.ajax({
url: '/django-route', // your route to process the file
type: 'POST', //
data: file,
processData: false,
contentType: 'application/octet-stream', // set Content-Type header
success: function(respnse) {
// do something
},
error: function(xhr, textStatus, errorThrown) {
// do something else
}
});
});
如果您需要跟蹤文件上傳進度,添加xhr
到$.ajax()
選項:
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener('progress', function(event) {
if (event.lengthComputable) {
var progress = Math.floor(10000 * event.loaded/event.total)/10000;
console.log(progress); // 0.2536 (25.36%)
}
}, false);
xhr.addEventListener('progress', function(event) {
if (event.lengthComputable) {
var progress = Math.floor(10000 * event.loaded/event.total)/10000;
console.log(progress);
}
}, false);
return xhr;
}
號。我沒有收到文件,在request.FILES。它顯示爲空白。 請您結束 (PDB)request.FILES 檢查 –
由於問題是特定的JS(Django的不特定的),答案是完全有效的。你沒有得到任何文件,因爲我猜django文件解析器中間件默認配置爲接受'application/x-www-form-urlencoded'或'multipart/form-data'請求。檢查'response.body',緩衝區應該在那裏。 –