Отправка данных вместо файла для формы ввода
Я использую 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 ответ
Решение
Вы отправляете строку, которая не будет распознана как файл. Попробуйте отправить блоб
fd.append("file", new Blob([data], { "type" : "text/plain" }));
Я уверен, что это будет работать только для текстовых файлов, если вы не установили responseType для исходного запроса.