apache 为什么我的X-CSRF令牌和会话一不在实时服务器中生成?

m4pnthwp  于 2023-03-24  发布在  Apache
关注(0)|答案(1)|浏览(95)

我试图上传一个使用laravel的应用程序到一个使用https的实时apache服务器,但我注意到我的post请求在这个过程中停止工作,我注意到我的请求和响应中的cookie缺少x-csrf令牌和会话1,无法继续处理请求。对于我的语言切换post(应该切换语言),发生了这种情况,我得到了一个页面过期错误

//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对他们所有人。我尝试使用隐藏输入以及无济于事,我怎么能修复页面过期错误?

g52tjvyc

g52tjvyc1#

我使用了另一个网络主机,这似乎已经解决了我的问题。

相关问题