Ваша проблема не связана с вашим бэкэндом - код fetch
выглядит правильно.
FormData
строится не так, как вы ожидаете. Вы можете попробовать это, открыв вкладку «Сеть» Chrome Devtools и наблюдая за ходом запроса: пустая полезная нагрузка запроса.
Проблема в том, что аргумент конструктора FormData
опирается на каждый input
в форме, имеющей атрибут name
, который вы пропустили. Если вы добавите его, (name="name"
) ваш интерфейс должен вести себя так, как ожидается:
<input type="text" name="name" value={this.state.value} onChange={this.handleChange} />
РЕДАКТИРОВАТЬ: В соответствии с вашим вышеупомянутым разговором, похоже, у вас также есть проблема CORS на стороне сервера. Мой ответ исправляет ваш первоначальный вопрос, но да, вам также нужно разрешить и CORS, самый простой способ, вероятно, состоит в том, чтобы ссылаться на документы любой используемой вами среды Java. Это очень распространенная проблема, и она должна быть в FAQ.