2014-07-03 62 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提交的。我仍不確定爲什麼會發生這種情況,剛開始學習快車時,會在我得到它們時添加更多細節。

相關問題