Laravel阿贾克斯内部servor 500(内部服务器错误)
问题描述:
我已经存储在会话中的购物车,我想刷新会话无需重新加载页面 我已经试过这样: 查看:Laravel阿贾克斯内部servor 500(内部服务器错误)
<a href="#" id="product" data-id="{{ $product->id }}" class="item_add single-item hvr-outline-out button2">Add to cart</a>
<script>
$(document).ready(function() {
$('#product').click(function(event) {
event.preventDefault();
let url = "{{ route('add-to-cart') }}";
let id = $(this).data('id');
$.ajax({
url: url,
type: 'POST',
data: {product_id: id, _token: "{{ Session::token() }}"}
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
});
});
路线:
Route::post('/add-to-cart', '[email protected]')->name('add-to-cart');
的ProductsController:
public function addToCart(Request $request)
{
if ($request::ajax()) {
$id = $request->product_id;
$product = Product::find($id);
if (Session::has('products')) {
$products = Session::get('products');
$products[] = $product;
Session::put('products', $products);
}
else {
$products = array($product);
Session::put('products', $products);
}
return response()->json();
}
}
,当我点击添加到购物车在控制台中
答
您所访问的ajax()
静态方法(使用::
),即送500(内部服务器错误)时,你应该使用->
代替:
if ($request->ajax()) {
使用Laravel日志文件
正如评论所说,Laravel可能是在告诉你这storage/logs/laravel.log
,完成一个长的调用堆栈跟踪(您提到的行,以“#38”和“#39”开头)。只需滚动到“#1”之前,你就会找到你的罪魁祸首。
答
Laravel不允许不经过X-CSRF-TOKEN, 以下是我的工作示例希望它可以帮助你。
路线:
Route::post('block-user','[email protected]');
现在,你需要在 blade.php您的AJAX调用之前添加AJAX设置这样:
在头部添加这个
<meta name="csrf-token" content="{{ csrf_token() }}" />
我的脚本,如:
<script>
//Ajax setup
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
//Ajax call
$(".blockuser").bootstrapSwitch();
$('.blockuser').on('switchChange.bootstrapSwitch', function() {
var userid = $('#userid').val();
$.ajax({
url:'/block-user',
data:{user_id : userid},
type:'post',
success: function(data){
alert(data);
}
});
});
</script>
控制器:
public function BlockUser(Request $request)
{
$userid = $request->get('user_id');
//perform operation
}
检查你的日志文件,还有地方在那里的提示。 – aynber
@aynber在哪里可以找到该文件? –
storage/logs/laravel.log – Wistar