Я пытаюсь добавить новую тележку при нажатии на кнопку с ajax.My кодом ниже:Laravel добавить новую запись в базе данных возвращает ошибку
1) Кнопка
<a class="checkout-button">checkout</a>
2) Ajax
$('.checkout-button').on('click', function(){
var url = '{{route('postcheckout')}}';
$.ajax({
type : 'POST',
url : url,
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data : {'user_id' : 5},
success:function(data){
console.log(data);
}
});
});
console.log и данные, используемые для испытания.
3) Маршрут
Route::post('/checout',[
'uses' => '[email protected]',
'as' => 'postcheckout'
]);
4) Контроллер
Use App\delivery_cart;
public function insertCart(Request $request){
$user_id = $request['user_id'];
$cart = new delivery_cart;
$cart->user_id = $user_id;
$cart->save();
}
База данных имеет 2 колонки - cart_id
(первичные, аг) и user_id
.
Когда я пытаюсь вставить новую запись, я получаю сообщение об ошибке 500 (внутренняя ошибка сервера, которая говорит: MethodNotAllowedHttpException
. Однако когда я читаю из базы данных, она работает. Я нашел похожие вопросы, и я думаю, что что-то не так с токеном, но Я не могу решить эту проблему.
Любой, кто может мне помочь?
привет .. Вы уверены, что вы только посетить маршрут через ' $ _POST' метод? Я имею в виду, может быть, вы не перенаправляете этот маршрут в методе '$ _GET', просто спрашивая – Beginner
, этот маршрут имеет как почтовый, так и пост, но я пробовал с другим маршрутом только с методом post, и он не работал. – george
Я вижу ,, потому что вы не включали '$ _GET' в свои маршруты, чтобы изменить его на' Route :: any (array ('post', 'get'), '/ checout', [ 'uses' => 'checkoutController @ insertCart', 'as' => 'postcheckout' ]); 'или просто добавить' Route :: get ('/ checout', [ 'uses' => 'checkoutController @ insertCart', 'as '=>' postcheckout ' ]); ' – Beginner