2015-12-01 8 views
1

Я искал во многих потоках, но никто не может решить мою проблему.Laravel post route error

Я использую XAMPP (LAMPP on Lubuntu 15.10) в качестве сервера. Я создаю новый проект с:

composer create-project laravel/laravel angulara

добавить новый маршрут в app/HTTP/routes.php:

Route::get('/', function() { 
    return view('index'); 
}); 

Route::any('/test', function($check = 'OK'){ 
    return 'Check: '.$check; 
}); 

Я использую локон, чтобы отправить запрос и получить реагировать. Когда я использую curl -X "GET" http://localhost/test, я получаю ответ Check: OK. Но когда я использую curl -X "POST" http://localhost/test, я получаю Ответ:

Whoops, looks like something went wrong. 

1/1 TokenMismatchException in VerifyCsrfToken.php line 53: 
in VerifyCsrfToken.php line 53 
at VerifyCsrfToken->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62 
at StartSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 122 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87 
at Kernel->handle(object(Request)) in index.php line 54 

Я новичок в Laravel, так что я не знаю, где искать ошибки, и я учусь с http://www.tutorials.kode-blog.com/laravel-5-angularjs-tutorial так что мне нужно отправлять запрос на $ HTTP-метод от AngularJS.

Как я могу решить эту проблему?

ответ

4

I'm the Csrf token issue. Вы не можете использовать метод поста без «_token» переменной или же вы изменить маршруты code.You может получить маркер, но этот метод:

<?php echo csrf_token(); ?> 

Или вы можете иметь его в форме, как:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> 

Приветствия!

2

Отъезд Laravel docs CSRF Protection.

А затем просто зайдите в файл Kernel.php (приложение/Http/Kernel.php) и отключите промежуточное программное обеспечение VerifyCsrfToken.

** 
* The application's global HTTP middleware stack. 
* 
* @var array 
*/ 
protected $middleware = [ 
    ... 
    //\App\Http\Middleware\VerifyCsrfToken::class, 
]; 
+0

Токен обеспечивает защиту доступа к перекрестным сайтам. Плохая практика, чтобы отключить его. Просто используйте {{crsf_field()}} где-то в вашей форме. –

+0

@TimvanUum Да, но когда @Thomas Sablik использует 'curl' для отправки запроса, я думаю, у нас просто есть только один способ решить эту проблему, отключив' VerifyCsrfToken' –