我使用parse.com和他们的expressjs框架。 我有这个html表单,它使用post调用我的/ login url但由于某种原因它被重定向(状态码为301)到该URL的get请求。
这是我的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>
为了使问题更清楚,我使用快递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 be called”。
我还尝试调试开发人员控制台发生的事情,这就是我得到的
答案 0 :(得分:0)
我认为您正在使用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提交的。我仍然不确定为什么会这样,只是开始学习快递,当我得到它们时会添加更多细节。