POST 경로에서 Laravel 5.4에 문제가 발생했습니다.Laravel 5.4 TokenMismatchException (Chrome)
양식을 제출하면 TokenMismatchException 오류가 표시됩니다.
나는 PrefixVariable에 관한 것이므로 Github에서 this issue을 열었습니다. 그러나 너무 많은 테스트를 거쳐 다른 솔루션을 시도한 후에 문제가 Prefix에 의해 만들어지지 않았다는 것을 알아 냈습니다.
Firefox의 모든 것이 정상입니다. Chrome에서 주된 문제가 발생합니다. 게시 경로는 첫 번째 양식을 제출 한 후 한 번만 작동합니다. 동일한 URL 얼굴에 대한 모든 다음 요청은 입니다. TokenMismatchException 오류.
내가 시도한 다음 : php artisan cache:clear
명령
- 지우기 크롬 쿠키와 역사
- 함께 HTML의 헤더와 PHP에서 포트를
- 방지 캐싱을
- 방지 캐싱을 봉사 변경 메타 태그
하지만 문제는 여전히 존재합니다.
정확히 무엇이 잘못 되었나요?! 당신이 나를 도와 주시면 감사하겠습니다.
로그인 양식 :
<form method="post" action="{{route('login')}}">
{!! csrf_field() !!}
<div class="row">
<div class="col-xs-12">
<div class="form-group no-margin">
<div class="col-xs-6 col-md-10 col-md-offset-1">
<input name="username" type="text" class="form-control" placeholder="نام کاربری" value="{{old('username')}}">
</div>
</div>
<div class="form-group no-margin">
<div class="col-xs-6 col-md-10 col-md-offset-1">
<input name="password" type="password" class="form-control" placeholder="کلمه عبور">
</div>
</div>
</div>
<div class="col-xs-12">
<div class="form-group no-margin">
<div class="col-xs-5 col-md-offset-1">
<input name="captcha" type="text" class="form-control" placeholder="کپچا">
</div>
<div class="col-xs-5 no-pad-right">
<img src="{{captcha_src('flat')}}" class="img-responsive">
</div>
</div>
</div>
<div class="col-xs-12 text-center">
<div class="form-group">
<button type="submit" class="btn btn-success btn-raised">ورود<div class="ripple-container"></div></button>
<button type="reset" class="btn btn-danger btn-raised">انصراف<div class="ripple-container"></div></button>
</div>
</div>
</div>
</form>
web.php
Route::group(['prefix' => config('system.ADMIN_PATH'), 'namespace' => 'Panel'], function(){
Route::get('/', function(){return redirect()->route('login');});
Route::get('/auth', '[email protected]')->name('login');
Route::post('/auth', '[email protected]')->name('check');
});
AuthController.php :
namespace App\Http\Controllers\Panel;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class AuthController extends Controller
{
public function Login(Request $request)
{
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
return view('admin.login');
}
public function Auth(Request $request)
{
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
dump($request->all());
echo "Received";
}
}
이러한 헤더의 목적은 무엇입니까? –
@TobyMellor 그냥 캐싱을 방지하십시오. 헤더가없는 출력에는 차이가 없습니다. –