我发现了很多类似的问题,但没有人与我的问题有关,但是,这是我的AJAX请求
data = JSON.stringify(data); url = base_url + "index.php/home/make_order"; //alert(url); var request = $.ajax({ url: url, type: 'POST', contentType: 'application/json', data: data }); request.done(function(response){ alert('success'); }); request.fail(function(jqXHR, textStatus, errorThrown){ alert('FAILED! ERROR: ' + errorThrown); });
我的问题是当它到达PHP CI控制器$ this-> input-> post('data')到空时!
更新 这是我的数据:如AJAX请求之前所示:
data = {"sum":"2.250","info":[{"id":"6","name":"bla","price":"1.000"}]}
请帮忙.提前致谢.
首先,我要感谢所有回复.实际上这是一些错误, 第一:正如@bipen所说,数据必须作为对象而不是字符串发送.当我尝试它时,它没有用,因为我没有把单引号放在数据周围
$.ajax({ url: url, type: 'POST', contentType: 'application/json', data: {'data': data} });
第二:正如@foxmulder所说,contentType拼写错误,应该是ContentType, 所以正确的代码是:
$.ajax({ url: url, type: 'POST', ContentType: 'application/json', data: {'data': data} }).done(function(response){ alert('success'); }).fail(function(jqXHR, textStatus, errorThrown){ alert('FAILED! ERROR: ' + errorThrown); });
而且只是因为有人遇到PHP提取问题,这是怎么做的:
$data = $this->input->post('data'); $data = json_decode($data); $sum = $data->sum; $info_obj = $data->info; $item_qty = $info_obj[0]->quantity;