当您点击带有ajax.My代码的按钮时,我正在尝试添加新购物车:
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' => 'checkoutController@insertCart',
'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();
}
数据库有两列 - cart_id
(主要,ai)和user_id
。
当我尝试插入新记录时,我收到错误500(内部服务器错误,其中显示:MethodNotAllowedHttpException
。但是,当我从数据库中读取它时,它有效。我发现类似的问题,我认为出现了问题令牌,但我无法解决问题。
任何可以帮助我的人?
答案 0 :(得分:0)
它会产生该错误,因为该路线没有get
方法进入您的路线
要解决您必须在路线中注册该方法。
更改路线
这
Route::post('/checout',[
'uses' => 'checkoutController@insertCart',
'as' => 'postcheckout'
]);
到
Route::any(array('post','get'),'/checout',[
'uses' => 'checkoutController@insertCart',
'as' => 'postcheckout'
]);
或者你可以添加
Route::get('/checout',[
'uses' => 'checkoutController@insertCart',
'as' => 'postcheckout'
]);