在 Laravel 驱动的网站上,有一个 jquery 脚本可以控制购物车中商品的数量和总价。我正在尝试使用纯 js fetch 重写购物车中的 jquery ajax。但是,没有办法在 get 请求中传递 body 来获取!所需的参数(数量、产品类型)被传递给正文。如果你把身体,脚本发誓身体不应该。如果您将正文更改为数据(或任何其他词)。请求通过,但在值中返回默认零,就好像未传递此参数一样。如果将 get 方法更改为 post,则会出现 404 错误。告诉我如何解决这个问题?
旧脚本
$.ajax({
type: "get",
url: "{{ route('ajax.set.product.count') }}",
data: {
product_type: product_type,
product_id: product_id,
new_count: new_count,
_token: "{{ csrf_token() }}"
},
dataType: "json",
success: function(data) {
console.log(data);
if (data.error == 'no') {
$('#productcount-1-' + index).val(data.new_count);
$('#productprice-1-' + index).text(data.price_product);
$('#productcount-2-' + index).val(data.new_count);
$('#productprice-2-' + index).text(data.price_product);
$('#price_all').text(data.price_all);
if (data.poil_count > 0) $('.pcount').text(data.poil_count);
}
}
});
新脚本
fetch('{{ route('ajax.set.product.count') }}', {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Requested-With": "XMLHttpRequest"
},
method: 'get',
credentials: "same-origin",
body: JSON.stringify({
product_type: product_type,
product_id: product_id,
new_count: new_count,
_token: "{{ csrf_token() }}"
}),
}).then(function(response) {
return response.json();
}).then(function(data) {
console.log(data);
if (data.error == 'no') {
document.getElementById('productcount-1-' + index).value = data.new_count;
document.getElementById('productprice-1-' + index).textContent = data.price_product;
document.getElementById('productcount-2-' + index).value = data.new_count;
document.getElementById('productprice-2-' + index).textContent = data.price_product;
document.getElementById('price_all').textContent = data.price_all;
if (data.poil_count > 0) document.querySelector('.pcount').textContent = data.poil_count;
};
})