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