2014-07-03 58 views
0

我使用parse.com及其expressjs框架。 我有这个HTML表单,它调用我的/登录URL后,但由于某种原因,它获取重定向(状态码301)到获取请求到该网址。POST请求被重定向到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> 

为了使问题更清楚我用parse.com快递JS和这里的两个路由定义

app.get('/login', function(req, res) { 
    res.send('get is called'); 
}); 

app.post('/login', function(req, res) { 
    res.send('post is called'); 
}); 

现在没有不管我在表单方法中提供的内容,我总是在提交按钮时在浏览器中显示“get is called”。

我也试图调试什么是开发者控制台发生在,这就是我得到

enter image description here

+0

我刚刚执行了您的示例,浏览器呈现“帖子被调用”。也许问题在你的代码中的其他地方。 – Michael

+0

您是否在编辑完文件后重新启动节点? – Michael

+0

这是我拥有的所有代码。如果你看到我粘贴的截图,帖子确实被调用。它只是从服务器重定向到GET。 parse.com支持表达js来完成所有这些操作。 –

回答

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> 

我在控制台检查,当加双引号的形式属性是这种

012的东西
<form action=""/login"" method=""POST""> 

因此,默认情况下表单是作为GET请求而不是POST提交的。我仍不确定为什么会发生这种情况,刚开始学习快车时,会在我得到它们时添加更多细节。

相关问题