繁体   English   中英

JQuery .post - $ _POST为空

[英]JQuery .post - $_POST empty

我知道ajax调用和$ _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_r($ _ POST); 的var_dump(json_decode(的file_get_contents( “PHP://输入”)));

但我在$ _POST中得到的只是一个空的二维数组。 当我在函数的开头执行console.log(postData)时,数据就在那里。

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

您的内部变量类型应该是一个对象而不是一个数组,否则它将无法正确序列化:

var postData = [];

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

你尝试过使用get而不是post。 尝试这至少可以确保数据从客户端传递到服务器,问题仅在于POST请求。

当你尝试GET而不是检查控制台时,如果你收到任何错误。

不要JSON.stringify您的帖子数据。 jQuery会为你做这件事,无论你是否自己完成,所以它是双重编码的。 如果你检查你的日志,你会发现,在解码数据之后,PHP有一个POST参数,它是你的所有数据,JSON编码。

你的看起来应该是这样的:

$.post('/ajax/ExportReportPDF.ajax.php', {data: postData}, ...
function export_report_pdf(postData){
 console.log(postData);

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

}

试试这个。 并确保包含最新的jquery。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM