Отправленные формы Netlify пустые

Когда я отправляю свою форму Netlify, сервер отвечает статусом 200, и я получаю страницу ответа с благодарностью. Однако, когда я проверяю отправку формы в администраторе Netlify, все они пусты. Я проверил свои запросы xhr, и данные отображаются в разделе «params» инструментов разработчика браузера.

params dev tools  введите описание изображения здесь


person dlaub3    schedule 15.04.2018    source источник
comment
Чтобы люди могли вам помочь, вы должны включить код формы и другую информацию, которая может быть важной, например, генератор статических сайтов, который вы используете.   -  person talves    schedule 16.04.2018


Ответы (2)


Отказ от ответственности: я работаю на Netlify.

Когда наша служба хранит пустые представления, он не получил никаких полей из представления, которые были определены в html-версии формы с тем же параметром name в определении, что и отправка.

Для начала полезно знать, что нашему сервису требуется простая html-версия вашей формы с параметром name, а также с параметром netlify или data-netlify=true; это то, что готовит ваш сайт к тому, чтобы вообще принимать формы, так что вы уже правильно настроили; если вы этого не сделаете, вы получите 404 при POSTing.

После того, как вы разместите это в развертывании и мы правильно проанализируем его, вы увидите имя формы на панели настроек вашего сайта на вкладке «Формы». Обратите внимание, что мы ТАКЖЕ извлекаем все имена полей, которые мы сохраняем и показываем вам в уведомлениях или на панели управления, из этого файла и только из этого файла, поэтому убедитесь, что вы присвоили каждому полю формы все name в этом html-файле.

Если вы видите форму на своей панели инструментов, но получаете пустую отправку, когда уверены, что данные были отправлены на POST, это, вероятно, имеет одну из трех причин:

  1. Netlify неправильно обработал имена полей из html-версии вашей формы. Служба будет правильно обрабатывать только поля, которые мы видим в этой HTML-версии во время развертывания.
  2. Netlify выполняет сопоставление по имени поля во время отправки, поэтому убедитесь, что то, что ваш сайт отправляет нам, совпадает с развернутой html-копией формы. Это происходит автоматически для чистых форм html (без JS), поскольку вы отправляете POST из файла, который является каноническим «определением» полей вашей формы; однако для форм javascript вам нужно позаботиться о том, чтобы имена совпадали. Другими словами, вы не можете позже динамически добавлять новые поля в javascript и отправлять их (Netlify примет все поля, как вы видели, но не будет сохранять их и не уведомлять вас о тех, которые не были обработаны во время развертывания!)
  3. Еще одна причуда, которая может помешать: наличие нескольких копий формы с одинаковым именем в вашем развертывании. Будет обработан только один, поэтому, если у вас есть ошибочный <form name=test netlify></form> в другом html файле (или даже в том же!) - это может быть тот, который мы обрабатываем, а не другая форма, также называемая test. Итак, убедитесь, что вы отправляете только одно определение html вашей формы. Обратите внимание, что некоторые фреймворки, такие как gatsby, перед развертыванием визуализируют ваш jsx в html, а это означает, что если у вас есть определение формы простого html-файла в вашем развертывании, оно может быть обработано вместо копии, созданной gatsby.

В этом сообщении в блоге описывается успешная форма, созданная в приложении React: https://www.netlify.com/blog/2017/07/20/how-to-integrate-netlifys-form-handling-in-a-react-app/

person fool    schedule 16.04.2018
comment
Спасибо @fool. Я использую Polymer, но следование технике React сработало отлично. Должно быть, это был ‹paper-input›, который отбросил обработку формы. - person dlaub3; 21.04.2018
comment
@fool, все же даже я определил <input type="file" multiple /> и отправил его в форму netlify, только 1-й файл был сохранен, остальные отправленные файлы игнорируются. Не могли бы вы объяснить, как разрешить netlify хранить несколько файлов (в виде массива)? Благодаря тонну! - person Jeff Tian; 08.09.2018
comment
@JeffTian несколько представлений - это другая проблема. Обратитесь в службу поддержки [email protected], чтобы получить более подробные инструкции. - person fool; 21.09.2018
comment
В моем случае у меня было несоответствие регистров - моя HTML-форма имела имя с прописной буквой N, а отправка имела имя со строчной буквой n. Исправив это, проблема была решена. Надеюсь это поможет! - person Vinay Raghu; 08.02.2019
comment
@fool есть причина не принимать значения из динамических полей? Есть способ сделать это сейчас? - person Mateus Luiz; 30.03.2019
comment
Обработка Netlify замораживает список входных данных во время развертывания, и мы не слушаем других. Вот как реализована эта функция, @MateusLuiz - person fool; 31.03.2019

Я пропустил атрибут "name" в поле input.
Каждый ввод в форме должен иметь атрибут «имя». Что-то вроде <input name="email" ...> или <textarea name="message" ...> - это то, что вам нужно.

person GorvGoyl    schedule 11.08.2019