我正在尝试将使用 laravel 的应用程序上传到使用 https 的实时 apache 服务器,但我 注意到我的帖子请求在此过程中停止工作,我注意到我在请求和响应中的 cookie 缺少 x-csrf 令牌和会话一以及继续请求。对于我的语言切换帖子(应该切换语言),发生这种情况并且我收到页面过期错误
//web.php
Route::post('/language/switch', [LanguageController::class,'switchLanguage'])->name('language.switch');
//languageController.php
public function switchLanguage(Request $request) {
$language = $request->language;
app()->setLocale($language);
$previousUrl = url()->previous();
$route = Route::getRoutes()->match(Request::create($previousUrl));
$routeName = $route->getName();
$newRouteName = preg_replace('/^(en|fr)\.(.*)$/', $language . '.\2', $routeName);
return redirect()->route($newRouteName);
}
//navbar.blade.php
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{app()->getLocale() == 'en' ? 'English' : 'Français'}}
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<form action="{{route('language.switch')}}" method="POST">
@csrf
<input type="hidden" name="language" value="{{app()->getLocale() == 'en' ? 'fr' : 'en'}}">
<button class="dropdown-item" type="submit">{{app()->getLocale() == 'en' ? 'Français' : 'English'}}</button>
</form>
</div>
</li>
不仅仅是帖子会出现页面过期错误,其他帖子也会出现页面过期错误,而且我对所有帖子都有@csrf。我也尝试使用隐藏输入,但无济于事 我该如何修复页面过期错误?