Данные формы в self.body пустые. Я использую Preact и Total js. значение = "@ {M.email}" не работает. Заполняет форму этим значением - PullRequest
0 голосов
/ 06 февраля 2020

submitHandler - это функция, которую я вызываю onSubmit и отправляю данные с использованием XMLHttpRequest. Я отправляю данные с помощью xhr.Send (), но в контроллере, в self.body я получаю нулевые значения.

class Form extends Component {
  render(props, state) {
    <div>
      <div class="field">
        <label class="label">PHONE NUMBER</label>
        <div class="control">
          <input
            class="input"
            type="tel"
            placeholder="+91 "
            name="phone"
            value="@{M.phone}"
            onInput={linkstate(this, "phone")}
          />
        </div>
      </div>
    </div>;
  }
}
export default Form;

submitHandler = () => {
  let formData = new FormData(document.getElementById("signup"));

  let xhr = new XMLHttpRequest();
  xhr.open("POST", "/xhr", true);

  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

  xhr.onreadystatechange = function() {
    if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
      console.log("Request finished");
    }
  };

  xhr.onload = () => {
    alert(xhr.responseText);
  };
  xhr.send(formData);
};

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Self.body из моего понимания требует JSON объекта. Я преобразовал formData в JSON объект, и он работает. xhr.send (JSON .stringify (Object.fromEntries (FormData)));

0 голосов
/ 06 февраля 2020

Вы уверены, что formData содержит некоторые данные? Проверьте запрос в инструментах веб-разработчика и попробуйте перехватить данные.

...