[英]PHP json_encode is returning as array string, but is not converting to array in JavaScript properly
我發出$ .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
這里發生了什么?
糾正這一行:
dataObject.dataArray = data;
對此:
dataObject.dataArray = JSON.parse( data );
你需要解析JSON,直到解析它只是一個字符串。
將dataType
參數添加到$.post
。
當設置為'json'
知道從json字符串解析它到對象/數組
$.post(url, postData, function(data){
// handling code
alert($.type(data)); //"array"
},'json');
如果您在服務器上設置正確的內容類型標題也有幫助
參考: $ .post docs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.