laravel 5.7 自己写[ 登出],出现错误讯息的解决方案
1.问题描述:
(1)写在网站目录/routes/web.php
#登出
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
(2)写在网站目录/resources/views/layouts/navbar.blade.php
<li class="nav-item">
<a class="nav-link" href="{{ route('logout') }}" > [登出]</a>
</li>
2.解决方案:
(1)变更方法为:将post改为get
写在网站目录/routes/web.php
#登出
Route:: post ('logout', 'Auth\LoginController@logout')->name('logout');
改写成
#登出
Route:: get ('logout', 'Auth\LoginController@logout')-> name('logout');
其余不用变更
(2)变更方法为:增加javascript与form
写在网站目录/resources/views/layouts/navbar.blade.php
<li class="nav-item">
<a class ="nav-link" href="{{ route('logout') }}" >[登出]</a>
</li>
<a class ="nav-link" href="{{ route('logout') }}" >[登出]</a>
</li>
改写成
<li class="nav-item">
<a class=" nav-link" href="{{ route('logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">[登出]</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</ form>
</li>
<a class=" nav-link" href="{{ route('logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">[登出]</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</ form>
</li>