formdata append не работает

Можете ли вы сказать мне, что с этим не так:

Мой вывод выглядит так, я не могу найти свою пару «ключ» — «значение»

Я не понимаю! Вчера это сработало так хорошо, и сегодня моя голова разбила клавиатуру так много раз! Firefox, Chrome, оба одинаковые:/

Новое в Chrome 50+ и Firefox 39+ (соответственно 44 +):

  • formdata.entries() (объединяйтесь с Array.from() для отладки)
  • formdata.get(key)
  • и более полезные методы

Оригинальный ответ:

То, что я обычно делаю, чтобы «отлаживать» объект FormData , просто отправить его (в любом месте!) и проверить журналы браузера (например, вкладку «Сеть Chrome devtools» ).

Вам не нужна такая же Ajax-структура. Вам не нужны детали. Просто отправьте его:

Вы говорите, что это не работает. Что вы ожидаете?

Нет способа получить данные из объекта FormData ; он просто предназначен для использования для отправки данных вместе с объектом XMLHttpRequest (для метода send ).

Обновление почти пять лет спустя: В некоторых новых браузеров, это уже не правда, и теперь вы можете увидеть данные, предоставленные FormData в дополнение к только начинку в него данные. См. принятый ответ для получения дополнительной информации.

Возможно, у вас была такая же проблема, с которой я изначально был. Я пытался использовать FormData для захвата всех моих входных файлов для загрузки изображения, но в то же время я хотел добавить идентификатор сеанса к информации, переданной на сервер. Все это время, я думал, добавив эту информацию, вы сможете увидеть ее на сервере, обратившись к объекту. Я был неправ. Когда вы добавляете в FormData, способ проверить добавленную информацию на сервере — это простой запрос $_POST[‘*your appended data*’] . так:

Если вы находитесь в Chrome, вы можете проверить Post Data​​p >

Вот как проверить данные Post

  • Перейдите на вкладку «Сеть».
  • Посмотрите на ссылку, по которой вы отправляете почтовые данные.
  • Нажмите на него
  • В заголовках вы можете проверить Request Payload для проверки данных post

Мне нужна помощь, так как я не уверен, что происходит, я пробовал этот же код на других возможностях, и это сработало, но по какой-то причине сейчас это не так, мне нужно загрузить файл через JQuery и Ajax, вот HTML-форма :

Ниже это конец приема от js:

Код PHP это простой var_dump для проверки:

Но когда я делаю оба VAR_DUMPS, $ _FILES пуст:

«array (0) <> array (1) <[» queHacer «] =>string (4)» Alta «>»

Не уверен, что я делаю неправильно, потому что у меня есть другая программа с таким же кодом, и она работает.

files — это массив с файлами, он точно не пустой, но в data ничего не добавляется.

1 ответ 1

А как вы определили что туда ничего не добавляется?
Для проверки стоит использовать метод getAll .
Попробуйте этот пример:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками javascript или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Оцените статью