我发现了很多类似的问题,但是没有人与我的问题相关,但是,这是我的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 Controller $ this-> input-> post('data')时到达!

更新
这是我的数据:如AJAX请求之前所示:



请帮忙。提前致谢。

最佳答案

首先,我要感谢所有回复。
实际上这是两个错误,
首先:正如@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;

关于jquery - AJAX发布JSON数据为空-Codeigniter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20285010/

10-10 00:10
查看更多