簡體   English   中英

PHP json_encode作為數組字符串返回,但沒有正確地在JavaScript中轉換為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM