【发布时间】:2015-06-10 16:38:10
【问题描述】:
我试图在来自 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
【问题讨论】:
-
在
self.response.out.write()中尝试JSON编码json.dumps(data) -
Shaunak,我将“self.response.out.write()”更改为“self.response.out.write(json.dumps(data));” (和导入的 json)并收到此错误:TypeError:
is not JSON serializable
标签: jquery python ajax google-app-engine ajaxform