2014-05-06 47 views
0

我使用我的下面的代碼來顯示一個頁面。這個頁面的首頁是從登錄頁面調用的。當用戶發佈用戶名和密碼時,它正確地調用了POST請求..點擊返回頁面調用獲取或發佈請求?

現在,如果我從其他頁面通過後退或前面按鈕導航到該起始頁面,什麼方法會執行「GET」或「POST」?

@app.route('/StartPage',method='GET') 
def test(): 
    print 'In get' 

@app.route('/StartPage',method='POST') 
def retrieve(): 

    username = request.forms.get('username') 
    password = request.forms.get('password') 

    return template('LoginPage') 

這是寫在瓶子框架

回答

1

當使用前進和後退,通常你的瀏覽器將重播最初由同一類型的請求,因此如果用戶試圖登錄到StartPagePOST請求和給定的用戶名和密碼,該POST請求將再次使用相同的用戶名和密碼發送。

如果他們最初訪問StartPageGET請求,並沒有提供用戶名和密碼,這GET請求將再次在使用前進/後退的命令發送。這通常適用於基本的HTTP框架。

+1

這導致了[Post/Redirect/Get](http://en.wikipedia.org/wiki/Post/Redirect/Get)的常見習慣用法,以減輕用戶發送意外重複POST請求的情況。 – TML

+0

@natdempk:感謝您的澄清..我看到的頁面顯示「此頁面上的代碼禁用後退和前進緩存」..這是否意味着POST或GET請求將被禁用? – user1050619

+0

@ user1050619我相信這意味着在使用後退/前進按鈕時總是會發送'POST'或'GET'請求,並且瀏覽器緩存的頁面版本將永遠不會被使用。 –

相關問題