簡體   English   中英

jQuery ajax()成功數據-從Python服務器檢索對象結果

[英]jQuery ajax() success data - retrieving object results from Python server

我正在嘗試從Python服務器(GAE)獲得jQuery ajax函數后顯示成功數據。 我可以使它僅使用單個字符串或數字作為成功數據,但是我想在ajax調用中從服務器中繼幾條信息。 我當時想最好的方法是將數據存儲在Python對象中,然后在回調中發送該對象。 對象顯示為“”,但對象屬性顯示為“未定義”。
您提供的任何建議都將不勝感激-

Javascript:

        $.ajax({
            type: "POST",  
            url: "/update_cart",  
            data: {'item1': item1, 'item2': item2, 'item3': item3}, 
            //dataType: 'jsonp',                
            success: function(data) {   
                    $("#amount").val(data.total);         $("#shopping_cart_count").text(data.cart_item_count);
                    alert(data);    //displays "<main.ajaxObject object at 0x042C8890>"
                    alert(data.cart_item_count);    //displays "undefined"                  
                }        
        });

Python代碼:

    data = ajaxObject() 
    data.cart_item_count = 5  
    data.total = 10 

    logging.info("*****data.cart_item_count %d ******"  % data.cart_item_count )    #displays correctly 
    logging.info("*****data.total %d ******"  % data.total )  #displays correctly   

    self.response.out.write(data);  #respond to ajax success with data object

您需要像Shaunak D所述對數據進行JSON編碼。 您收到的錯誤是告訴您json包不知道如何將ajaxObject實例編碼為字符串。

您可以使用自定義JSON編碼器來解決此問題,詳情參見https://docs.python.org/2/library/json.html (“擴展JSONEncoder”部分)

另外(更容易),您可以使用字典來表示數據:

data = {
    'cart_item_count': 5,
    'total': 10
}
self.response.out.write(json.dumps(data))

jQuery的ajax函數應自動將JSON字符串解碼為Javascript對象。

暫無
暫無

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

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