#express #parse-platform
#экспресс #синтаксический анализ-платформа
Вопрос:
Я использую parse.com с их фреймворком expressjs. У меня есть эта html-форма, которая вызывает мой URL / login с помощью post, но по какой-то причине она перенаправляется (с кодом состояния 301) на запрос get на этот URL.
Это моя HTML-форма
<html>
<head></head>
<body>
<form method="post" action="/login">
<label>Username</label>
<input name="username"></input>
<label>Password</label>
<input name="password" type="password"></input>
<input class="button" type="submit" value="Log In">
</form>
</body>
Чтобы сделать вопрос более понятным, я использую express js с parse.com и вот два определенных маршрута
app.get('/login', function(req, res) {
res.send('get is called');
});
app.post('/login', function(req, res) {
res.send('post is called');
});
Теперь независимо от того, что я предоставляю в своем методе формы, я всегда получаю «get вызывается» в браузере при отправке кнопки.
Я также попытался отладить то, что происходит в консоли разработчика, и это то, что я получаю
Комментарии:
1. Я только что выполнил ваш пример, и браузер отображает «post вызывается». Возможно, проблема в другом месте вашего кода.
2. Вы перезапускали node после редактирования своих файлов?
3. это весь код, который у меня есть. Если вы видите скриншот, который я вставил, сообщение действительно вызывается. Он просто перенаправляется на GET с сервера. parse.com поддержите express js для выполнения всех этих операций.
4. @Nikita, я использую parse.com для серверной части. Я могу только повторно развернуть, а не перезапускать.
Ответ №1:
Я думаю, что вы используете шаблон ejs, попробуйте добавить все атрибуты в свою форму без двойных кавычек, что-то вроде этого и попробуйте
<html>
<head></head>
<body>
<form method=post action=/login>
<label>Username</label>
<input name="username"></input>
<label>Password</label>
<input name="password" type="password"></input>
<input class="button" type="submit" value="Log In">
</form>
</body>
</html>
Я проверил в консоли, и атрибуты формы, когда были добавлены двойные кавычки, были чем-то в этом роде
<form action=""/login"" method=""POST"">
таким образом, по умолчанию форма отправлялась как запрос GET вместо POST. Я все еще не уверен, почему это происходит, только начал изучать express, добавлю больше деталей, когда я их получу.