сохранение JavaScript-объекта FormData () на стороне клиента - PullRequest
0 голосов
/ 01 мая 2018

У меня html-страница содержит элемент формы, содержащий некоторые элементы ввода текста и файлов.
Это отправка с использованием ajax-вызова на сервер с использованием метода, предложенного listen: /118532/kak-ya-mogu-zagruzhat-faily-asinhronno#118549
Как видно из приведенной выше ссылки, объект FormData () используется в качестве контейнера для введенных данных, и я успешно выполнил эту работу.
Но теперь мы хотим создать новую страницу, содержащую эти элементы html, но сохранить текстовые и файловые входные данные на стороне клиента (Cookie или Local Strorage или ...) и сделать так, чтобы ajax отправлял последние на другой странице.
Я не смог сохранить новых FormData () ни в cookie, ни в локальном хранилище; то, что будет сохранено, является маленькой строкой: «[object FormData]» вместо введенного файла и строк.
Я также пытаюсь JSON.stringify () безуспешно; он просто возвращает пустой JSON ("{}").
(код использует селектор jQuery)

var postData = new FormData($(form)[0]);
// var sPostedData = JSON.stringify(postData); // returns: "{}"
var myStorage = window.localStorage; // returns: "[object FormData]"
myStorage.setItem("contentOrder", postData);

Пожалуйста, помогите мне, как мне сохранить этот объект в клиенте?
Спасибо заранее.

1 Ответ

0 голосов
/ 01 мая 2018

Чтобы получить файл из данных формы, используйте formData.get('file'), где file - имя входа. Возвращаемый объект будет иметь тип Blob ( см. , как получить его содержимое).

Полный пример можно найти в этой скрипке: https://jsfiddle.net/skm5m467/1/

...