最近在自學Laravel,測試用post方法提交表單時碰到兩個錯誤:
1、獲取傳入的值時,報錯如下圖所示:
在stackFlow找答案時各種解釋都有,但認真讀一下報錯信息,意思大概是:獲取Http傳入值方式不允許,檢查代碼,將偷懶寫的:
1 Route::get('test',function(){ 2 // 3 });
改為用post方法或者any方法接收即可:
1 Route::post('test',function(){ 2 // 3 });
2、提交表單時,第二個報錯信息如下圖所示:
這個報錯出現在於Laravel框架為了防止跨域請求攻擊(CSRF)而為用戶生成的隨機令牌,post請求如果沒有驗證token,就出現上圖的報錯信息。解決方法:在form表單中添加一個隱藏域,攜帶token參數即可:
1 <form action="user" method="post"> 2 <input type="hidden" name="_token" value="{{csrf_token()}}"> 3 用戶名:<input type="text" name="username"> 4 密碼:<input type="password" name="pwd"> 5 <input type="submit" value="提交"> 6 </form>