提问者:小点点

JQuery。post-$\您的post为空


我知道ajax调用和$u POST最近出现了很多次,但是我找不到我当前问题的答案。

在我的Javascript中,我有一个二维数据数组:

var postData = new Array(new Array());
postData[0]['type'] = 'grid';
postData[0]['data'] = gridData;

然后我尝试将此数组发送到PHP脚本:

function export_report_pdf(postData){
   console.log(postData);

   $.post('/ajax/ExportReportPDF.ajax.php',{data:  JSON.stringify(postData)}, 
   function(postData){
        console.log("Successfully requested report export.");
   });

}

我尝试在我的PHP脚本中接收数组:print\u r($\u POST);变量转储(json解码(文件获取内容)php://input")));

但我在$u帖子中得到的只是一个空的二维数组。当我做控制台的时候。日志(postData)在我函数的开头,数据就在那里。

我还检查了$_REQUEST并尝试删除JSON. stringifi。


共3个答案

匿名用户

内部变量类型应为对象而不是数组,否则无法正确序列化:

var postData = [];

postData.push({
   type: 'grid',
   data: gridData
});

匿名用户

你试过用get代替post吗。尝试这样做至少可以确保数据从客户机传递到服务器,而问题只在于POST请求。

此外,当你尝试GET比检查控制台,如果你得到任何错误。

匿名用户

jQuery将为您做这件事,不管您自己是否已经做了,所以它是双编码的。如果您检查日志,您将看到,在解除数据编码后,PHP有一个单独的POST参数,即您所有的数据,JSON编码。

你可以看起来像这样:

$.post('/ajax/ExportReportPDF.ajax.php', {data: postData}, ...