我知道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脚本中接收数组: var_dump(json_decode(file_get_contents("php://input")));( print_r($_POST);
但是我在$_POST中得到的只是一个空的二维数组。当我在函数开始处执行console.log(postData)时,数据就在那里。
我还检查了$_REQUEST并尝试删除JSON.stringify。
发布于 2013-05-03 21:59:48
你的内部变量类型应该是对象而不是数组,否则它不会被正确序列化:
var postData = [];
postData.push({
type: 'grid',
data: gridData
});发布于 2013-05-03 21:55:09
您是否尝试过使用get而不是post。尝试一下,这至少可以确保数据从客户端传递到服务器,并且问题只出现在POST请求上。
同样,当你尝试GET时,如果你得到任何错误,请检查控制台。
发布于 2013-05-03 21:56:28
不要JSON.stringify你的帖子数据。jQuery会为你做这件事,不管你是否自己做过,所以它是双编码的。如果检查日志,您将看到,在对数据进行解编码之后,PHP有一个POST参数,该参数是所有数据的JSON编码。
您的可能应该如下所示:
$.post('/ajax/ExportReportPDF.ajax.php', {data: postData}, ...https://stackoverflow.com/questions/16360008
复制相似问题