Передача данных вместо файла для формы ввода

Я использую jQuery для извлечения изображения и отправки его в другую форму:

handler = function(data, status) {
    ...
    var fd;
    fd = new FormData;
    fd.append("file", data);
    jQuery.ajax({
      url: target_url,
      data: fd,
      processData: false,
      contentType: false,
      type: "POST",
      complete: function(xhr, status) {
        console.log(xhr.status);
        console.log(xhr.statusCode);
      }
    });
};
jQuery.get(imageUrl, null, handler);

Форма выглядит примерно так:

<form>
  <input type="file" name="file" />
  ...
</form>

Вещи работают не так, как ожидалось. Я получаю ответ 200 с сервера, и он отображает формы с некоторыми значениями, предварительно заполненными.

Я также попытался установить contentType: "multipart/form-data"

Любые идеи, почему это не работает?

Ответ 1

Вы отправляете строку, которая не будет распознана как файл. Попробуйте отправить blob

fd.append("file", new Blob([data], { "type" : "text/plain" }));

Я уверен, что это будет работать только для текстовых файлов, если вы не установите responseType в исходном запросе.