jquery ajax POST с jquery GET в качестве входных данных formdata

#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 в том же событии?