簡體   English   中英

laravel中的表單提交無法正常工作,並顯示令牌不匹配異常

[英]Form submission in laravel is not working and show token-mismatch Exception

我是新的Laravel學習者。 我已經在Laravel 5.4中創建了一個表單,並添加了兩個字段,一個是textfield,另一個是Submit按鈕。 我已經為表單提交創建了一個名稱路由。 但是當我提交表單時,它顯示令牌不匹配異常。 我從我的代碼中找不到錯誤。 這是我的表單代碼。

<form method="post" action="{{route('f.submit')}}">
    {{csrf_field()}}

    <input class="form-control" type="text" name="fname">
    <input type="submit" name="submit" value="Create">
</form>

這是我的路線

Route::post('formsubmit','HomeController@formSubmit')->name('f.submit');

還有我的控制器

 public function formSubmit()
{
    echo "Form Submitted";
}

Laravel 5.6開始,您可以使用新的@csrf刀片指令。 例如:

<form method="POST" action="/profile">
    @csrf
    ...
</form>

您必須為令牌添加輸入隱藏字段。 將您的視圖更改為:

<form method="post" action="{{route('f.submit')}}">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">

    <input class="form-control" type="text" name="fname">
    <input type="submit" name="submit" value="Create">
</form>

您能否確保/storage目錄具有適當的寫權限(0755)? 如果您使用的是Linux,則可以通過sudo chmod 0755 -R storage/

另外,請嘗試不要轉義csrf_field()值。 代替{{ csrf_field() }}嘗試{!! csrf_field !!} {!! csrf_field !!}因為該輔助函數吐出HTML

嘗試這個。 用於表格。

<form method="post" action="{{route('f.submit')}}">
{{csrf_field()}}

<input class="form-control" type="text" name="fname">
<input type="submit" name="submit" value="Create">

在控制器中。

public function formSubmit(Request $request)
{
  $request->all();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM