2017-01-08 3 views
4

У меня проблема с симптомами, сходными с this question и несколькими другими, хотя ответы мне не помогли. Я пытаюсь отправить пароль с помощью простой формы HTML в приложение Node, но тело запроса продолжает возвращаться.Запрос тела пуст при выполнении запроса POST по форме HTML

Сервер:

app.use(bodyParser.urlencoded({extended: true})); 

router.post('/login', (req, res) => { 
    console.log(req.body); 
    console.log(req.headers['content-type']); 
}); 

Форма:

<form action="/login" method="post"> 
    <input type="password" id="password"> 
    <button type="submit">Log In</button> 
</form> 

Если я отправить форму, я получаю следующее:

{} // req.body 
'application/x-www-form-urlencoded' // req.headers['content-type'] 

Однако, если я пытаюсь свернуться конечную точку, Я получаю непустую req.body:

$ curl -X POST localhost:5000/login -d 'password=testpw' 

// Output 
{ password: 'testpw' } 
'application/x-www-form-urlencoded' 

Что я делаю неправильно?

+0

какая версия экспресс? – Alex

+0

Экспресс-версия 4 – ericgio

ответ

6

Проблема в вашей форме

<form action="/login" method="post"> 
    <input type="password" id="password"> 
    <button type="submit">Log In</button> 
</form> 

Ваш input не имеет name элемент

Должно быть

<input name="password" type="password" id="password"> 
+0

Ughhhhhhhhh. Благодарю. – ericgio

+0

без проблем, простой ошибка сделать! :) – Alex

Смежные вопросы