我发出$ .post请求来提交数据并返回无效数据。这是$ .post请求:
$('#submitAll').click(function(){
$.post("php/entries/submitAndReload.php", {array : dataObject.dataArray}, function(data){
alert(data); // alerts: "[[“0”, “0”,””,””, “0”, “0”, “0”, “0”,”No Style”]]"
dataObject.dataArray = data;
$.post("php/entries/stageArea.php", {array : dataObject.dataArray}, function(data){
$('#stageArea').html(data);
});
});
});
dataObject.dataArray
是一个双数组,alert(data)
警告后续$ .post请求的正确格式,但第二个$ .post请求的输出看起来像我传入以下内容阵列:[[ "[" ]]
。第一个字段获得"["
,其他字段无法获取数据。
我不确定这里发生了什么以及如何将返回的data
正确存储到dataObject.dataArray
这里发生了什么?
答案 0 :(得分:2)
纠正这一行:
dataObject.dataArray = data;
对此:
dataObject.dataArray = JSON.parse( data );
你需要解析JSON,直到解析它只是一个字符串。
答案 1 :(得分:1)
将dataType
参数添加到$.post
。
当设置为'json'
时,jQuery知道从json字符串解析为对象/数组
$.post(url, postData, function(data){
// handling code
alert($.type(data)); //"array"
},'json');
如果您在服务器上设置了正确的内容类型标题,那么它也有帮助
参考:$.post docs