Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试用纯js fetch重写jQueryAjax。取尸体_Jquery_Ajax_Fetch_Pure Js - Fatal编程技术网

尝试用纯js fetch重写jQueryAjax。取尸体

尝试用纯js fetch重写jQueryAjax。取尸体,jquery,ajax,fetch,pure-js,Jquery,Ajax,Fetch,Pure Js,在Laravel驱动的站点上,有一个jquery脚本控制购物车中商品的数量和总价。我正试图用纯JSFETCH在cart中重写jQueryAjax。但是,无法通过body来获取get请求!所需参数(数量、产品类型)将传递给车身。如果你把尸体放进去,脚本发誓尸体不应该被放进去。如果您将body更改为data(或任何其他单词)。请求通过,但返回值中的默认零,就好像此参数未通过一样。如果将get方法更改为post,则会出现404错误。告诉我如何解决这个问题 旧书 $.ajax({ type: &qu

在Laravel驱动的站点上,有一个jquery脚本控制购物车中商品的数量和总价。我正试图用纯JSFETCH在cart中重写jQueryAjax。但是,无法通过body来获取get请求!所需参数(数量、产品类型)将传递给车身。如果你把尸体放进去,脚本发誓尸体不应该被放进去。如果您将body更改为data(或任何其他单词)。请求通过,但返回值中的默认零,就好像此参数未通过一样。如果将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;
  };
})

GET
请求中的参数放在URL的搜索字段中,因为没有正文

const body={
产品类型:产品类型,
产品标识:产品标识,
新计数:新计数,
_令牌:{{csrf_token()}}”
};
const params=Object.entries(body.map)((k,v)=>k+'='+encodeURIComponent(v)).join('&');
fetch({route('ajax.set.product.count')}}}?+参数{
标题:{
“接受”:“应用程序/json”,
“X-request-With”:“XMLHttpRequest”
},
方法:“get”,
凭据:“相同来源”
}).然后(功能(响应){
返回response.json();
}).then(功能(数据){
控制台日志(数据);
如果(data.error==“否”){
document.getElementById('productcount-1-'+索引)。value=data.new\u count;
document.getElementById('productprice-1-'+索引).textContent=data.price\u product;
document.getElementById('productcount-2-'+索引)。value=data.new\u count;
document.getElementById('productprice-2-'+索引).textContent=data.price\u product;
document.getElementById('price_all')。textContent=data.price_all;
如果(data.poil_count>0)document.querySelector('.pcount')。textContent=data.poil_count;
};

})
GET请求中没有主体。参数以URL编码的格式放入URL。如何将正文重写为URL编码的格式?重写变量如下
const-params=Object.entries(body).join(
&
).replace(/,/g,
=
因为只有这种类型的链接被接受
https://sait/ajax/set-product-count?product_type=diffuzor&product_id=38&new_count=2&_token=545234
现在一切正常。再次感谢您对正确方法的提示和解释。非常感谢!