Php jqueryajax错误的数据响应
看起来我打错了字或是出了什么事Php jqueryajax错误的数据响应,php,jquery,ajax,Php,Jquery,Ajax,看起来我打错了字或是出了什么事 function updateCart() { var dataArray= []; var i=0; var item; $('.cd-cart .wrapper .body .product').each(function() { var item=new Array(); i++; var $element = $(this) qty=parseInt($element.find('select').val()); name=$el
function updateCart()
{
var dataArray= [];
var i=0;
var item;
$('.cd-cart .wrapper .body .product').each(function()
{
var item=new Array();
i++;
var $element = $(this)
qty=parseInt($element.find('select').val());
name=$element.find('h3 a').html();
price=parseInt($element.find('.price1').text().replace('₽',''));
id=parseInt($element.attr('id').replace('product_',''));
image=$element.find('img')[0].src;
item['id']=id;
item['price']=price;
item['name']=name;
item['qty']=qty;
item['image']=image;
dataArray.push(item);
});
var jObject={};
jObject = JSON.stringify(dataArray);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: '/updateCart',
type: 'get',
dataType:'json',
data: ({dataArray:jObject}),
success:function(data){
console.log(data);
},
error:function(error){
console.log(error);
}
});
}
服务器端得到返回$\u-GET;
我从服务器得到这个响应:对象{dataArray:[[],[]]“}
我该怎么做才能得到正常的反应?
P.S dataArray是一个数组的数组
当我试图运行代码流时,我在这里进行了一些重新格式化。通常,如果需要JavaScript中的关联数组样式分组,则需要使用对象,而不是数组。数组是索引的,对象是键控的。在我的示例中,我使用构造函数来构建项目。您还可以
let data={}
然后构建键,如data.id=1
// formatted for readability.
function updateCart() {
const data = buildCart();
let dataObj = JSON.stringify(data)
makeRequest('/updateCart', dataObj);
}
function buildCart() {
let data = [];
$('.cd-cart .wrapper .body .product').each(function() {
const $element = $(this);
let qty = parseInt($element.find('select').val())
, name = $element.find('h3 a').html()
, price = parseInt($element.find('.price1').text().replace('₽',''))
, id = parseInt($element.attr('id').replace('product_',''))
, image = $element.find('img')[0].src;
data.push(new Item(id, price, name, qty, image));
});
return data;
}
function Item(id, price, name, qty, image)
{
this.id = id
this.price = price;
this.name = name;
this.qty = qty;
this.image = image;
}
function makeRequest(url, dataObj)
{
let token = $('meta[name="csrf-token"]').attr('content');
let jqXHR = $.ajax({
url: url,
type: 'GET',
headers: 'X-CSRF-TOKEN': token,
dataType: 'json',
jsonp: false,
data: {dataArray: dataObj}
});
jqXHR.done(function(data, status, jqXHR) {
// success
});
jqXHR.fail(function(jqXHR, status, error) {
// failure
});
}
我想我可以看到这里的问题,但出于调试目的,因为我们知道您的服务器正在接收请求并将其视为响应发送回,您可能可以注释掉AJAX调用,然后尝试将dataArray打印到控制台。确保你发送的是你认为你是什么,这是我使用javascript的第一步:)。@dlow这是数组与一些数据的样子[array[0]]0:array[0]id:9 image:“items/2ktXCd2j1488052733.jpg”name:“Free”price:123 JSON.stringify之后的数量:2我得到:[[]]谢谢,帮助很大。在此之前,我花了1.5个小时在这上面,没有找到解决方案。