我知道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。
内部变量类型应为对象而不是数组,否则无法正确序列化:
var postData = [];
postData.push({
type: 'grid',
data: gridData
});
你试过用get代替post吗。尝试这样做至少可以确保数据从客户机传递到服务器,而问题只在于POST请求。
此外,当你尝试GET比检查控制台,如果你得到任何错误。
jQuery将为您做这件事,不管您自己是否已经做了,所以它是双编码的。如果您检查日志,您将看到,在解除数据编码后,PHP有一个单独的POST参数,即您所有的数据,JSON编码。
你可以看起来像这样:
$.post('/ajax/ExportReportPDF.ajax.php', {data: postData}, ...