Я пытаюсь использовать ajax для добавления в корзину. но кажется, что форма html не отправляет никаких запросов ajax. Когда я нажимаю кнопку «Добавить в корзину». он показывает черную страницу, потому что я использую этот метод проверки ajax на контроллере.
Контроллер
public function addToCart(Request $request){
$product = Product::find($request->product_id);
Cart::add($product->id, $product->title, 1, $product->price);
$response = array(
'status' => 'success',
'msg' => 'Setting created successfully',
);
if ($request->ajax())
return \Response::json($response);
}
Javascript - AJAX
$('#add').on('submit', function (e) {
e.preventDefault();
var pid = $('#product_id').val();
var cat = $('#category_id').val();
$.ajax({
type: "POST",
url: host + '/addToCart',
data: {product_id: pid, category_id: cat},
success: function( msg ) {
$("#xx").append("<div>"+msg+"</div>");
}
});
});
HTML-форма
<form id = "add" action = "{{ route('addToCart') }}" method = "POST">
{{csrf_field()}}
<input type = "hidden" id = "category_id" name = "category_id" value = "{{ $px->category_id }}">
<input type = "hidden" id = "product_id" name = "product_id" value = "{{ $px->id }}">
<input type = "submit" value = "Add to Cart" class = "bg-color-input">
</form>
<div id = "xx"></div>
где я ошибся?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


если вы забыли отправить csrf_token, вы можете решить эту проблему следующим образом:
<form id = "add" action = "{{ route('addToCart') }}" method = "POST">
{{csrf_field()}}
<input type = "hidden" id = "category_id" name = "category_id" value = "{{ $px->category_id }}">
<input type = "hidden" id = "product_id" name = "product_id" value = "{{ $px->id }}">
<input type = "button" id = "submitBtn" value = "Add to Cart" class = "bg-color-input">
</form>
<div id = "xx"></div>
$('document').on('click','#submitBtn',function(){
e.preventDefault();
var pid = $('#product_id').val();
var cat = $('#category_id').val();
$.ajax({
type: "POST",
url: host + '/addToCart',
data: {product_id: pid, category_id: cat,'_token','{{csrf_token()}}'},
success: function( msg ) {
$("#xx").append("<div>"+msg+"</div>");
}
});
});
или вы можете серилизовать форму:
$('document').on('click','#submitBtn',function(){
e.preventDefault();
$.ajax({
type: "POST",
url: host + '/addToCart',
data:$('#add').serialize(),
success: function( msg ) {
$("#xx").append("<div>"+msg+"</div>");
}
});
});
это ничего не делает. даже не перезагружая страницу
ты видишь консоль?
чтобы узнать, отправлен ли запрос или нет
SyntaxError: отсутствует: после идентификатора свойства [Подробнее] его в консоли
или вы можете поделиться всем кодом страницы, чтобы я мог его проверить
вы отправили csrf_token с данными?