#javascript #jquery #ajax #multipartform-data
#javascript #jquery #ajax #составная форма-данные
Вопрос:
Я пытаюсь вызвать запрос jquery ajax POST, который содержит formdata в виде нескольких файлов, расположенных на файловом сервере. Это мой запрос ajax;
var formData = new FormData();
$.ajax({
url: 'url',
method: 'POST',
contentType: false,
processData: false,
data: formData,
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " btoa(username ":" password));
},
success: function(res){
console.log('successfully')
},
error: function(){
console.log('error')
}
})
где FormData содержит файлы, расположенные где-то на файловом сервере, которые я пытался извлечь с помощью jquery get и попытался добавить в FormData в document ready, как показано ниже;
$.get("http://localhost/file.xml", function(data) {
var data1 = data;
var file = new File([data1], "file.xml");
formData.append('file', file);
});
Возможно ли передать или создать FormData, имеющие файлы, расположенные на файловом сервере, в запросе ajax POST?
Ответ №1:
Вам нужно будет преобразовать его в большой двоичный объект
$.ajax({
url: "http://localhost/file.xml",
method: "GET",
dataType: "text"
}).done(function( content ) {
var blob = new Blob([content], { type: "text/xml" });
formData.append("file", blob);
});
Комментарии:
1. большое вам спасибо. он работает нормально. Возможно ли вызвать GET и POST в одном событии, в котором GET сначала создаст FormData, а затем отправит FormData для POST в том же событии?