簡體   English   中英

我可以通過jquery.getJSON發送數組嗎?

[英]Can I send an array by jquery.getJSON?

我有這個jQuery代碼:

$(".cashOutButton").click(function(e){
    e.preventDefault();
    var sendArray=[{'value': '123', 'type': 'Buy_Order_ID'},
                    {'value': '44.20', 'type': 'Set_Price'},
                    {'value': 'John', 'type': 'seller_Name'},
                    {'value': 'S', 'type': 'Sell_Type'}
                    ];

    var sendData = {'sendArray': sendArray};

    $.getJSON('addToSession.php',sendData,function(data){
        console.log(data);
    });        

})

以及以下php代碼-addToSession.php(僅用於測試其是否有效,最終代碼將有所不同):

<?php
print_r($_GET['sendArray']);
?>

沒用 什么也沒回來。 我的問題是,我可以將對象數組發送到$ .getJSON嗎? 還有什么其他解決方案可以發送陣列? 如果可以的話,它不必是對象數組,也可以是數組數組。

您可以,這將返回您期望的數據。 您可以通過查看瀏覽器開發人員工具的“網絡”標簽中的響應進行測試。

它不會在console.log中顯示,因為getJSON要求它得到的響應是JSON,並且您正在響應的內容聲稱是HTML文檔(PHP的默認設置),但包含print_r的輸出(不是有效的HTML或JSON)。

發送回JSON,它將起作用:

<?php
    header("Content-Type: application/json");
    echo json_encode($_GET['sendArray']);
?>

在這種情況下,您應該改用http://api.jquery.com/jQuery.post/

顧名思義,JQuery.getJSON應該用於獲取JSON數據,而不是發送它。 那是因為您的數組已轉換為GET,並且它會生成json請求,例如

addToSession.php?undefined = 123&undefined = 44.20&undefined = John&undefined = S。

要發送JSON數據,請使用jQuery.post和“ json”數據類型。

$.post( "addToSession.php", sendData, function( data ) {
  console.log( data);
}, "json");

並且您的數組應該是最終的,如:

{sendData: [ {'value': '123', 'type': 'Buy_Order_ID'},
         {'value': '44.20', 'type': 'Set_Price'},
         {'value': 'John', 'type': 'seller_Name'},
         {'value': 'S', 'type': 'Sell_Type'}
]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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